Skip to content

ariasql/ariasql

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AriaSQL is a relational database management system designed and engineered from the ground up from scratch to address a variety of data management needs with ease and efficiency. At its core, AriaSQL is a database server that supports a range of SQL functionalities with a focus on delivering predictability, efficient query execution and data integrity.

Warning

Still in beta stages, use at your own risk. An official release will be made once the project is stable. The repository is under active development and may change frequently. Things can break, change, or disappear at any time.

Features

  • SQL1+ handwritten parser, lexer implementation (AriaSQL follows and implements majority of ANSI SQL1 standard with some minor upgrades)
  • BTrees for indexes
  • Executer for query execution
  • SQL Server (TCP Server on port 3695)
  • User authentication and privileges
  • Atomic transactions with rollback support on error
  • WAL (Write Ahead Logging)
  • Recovery-Replay from WAL
  • Subqueries
  • Aggregates
  • Implicit joins
  • Row level locking
  • Users and privileges
  • CLI (asql)
  • TLS Support
  • JSON response format (false by default)
  • Foreign keys
  • DML, DQL, DDL, DCL, TCL Support
  • Stored Procedures
  • Cursors
  • Execution Plan using EXPLAIN
  • CASE expressions (Within select list and where clauses)
  • Functions (UPPER, LOWER, CAST, COALESCE, REVERSE, ROUND, POSITION, LENGTH, REPLACE, CONCAT, SUBSTRING, TRIM) functions used with SELECT within a where clause or select list, i.e SELECT * FROM table WHERE UPPER(column) = 'TEST'
  • DATE, TIME, TIMESTAMP, DATETIME, UUID, BINARY, BOOL/BOOLEAN, TEXT, BLOB data types
  • DEFAULT constraint
  • CHECK constraint
  • GENERATE_UUID, SYS_DATE, SYS_TIME, SYS_TIMESTAMP functions which can be used with CREATE TABLE, or INSERT INTO, UPDATE, SELECT
  • Logging to file (aria.log) [optional]
  • Encryption (ChaCha20) - Encrypts row data for storage with table level encryption [optional]
  • Compression (ZSTD) - Compresses row data for storage [optional]
  • Alter table (migration)
  • Replication - Replication to slave nodes, replicates wal entries from master to slave nodes.

Clients/Drivers

GUI

Documentation

Refer to docs folder for more information on how to use AriaSQL.

Issues & Requests

Please report any issues or feature requests as an issue on this repository.

License

AriaSQL is licensed under the AGPL-3.0 license.