SharpLite is a small database engine written in C#. It is intended as a learning project to demonstrate how core database components (lexer, parser, execution engine, Indexes, and simple storage) can be implemented from scratch.
- Simple SQL lexer and parser for a subset of SELECT statements
- AST representation for SELECT and WHERE expressions
- Basic virtual machine operators and storage abstractions
To run the CLI project:
dotnet run --project src/SharpLite.CliFeel free to open issues or pull requests with fixes, tests, or enhancements.
- Improve lexer
- Recognize more operators and punctuation
- Expand parser
- Support JOINs, GROUP BY, ORDER BY, and LIMIT
- Add INSERT/UPDATE/DELETE statements
- Improve expression parsing (nested expressions, parentheses, functions)
- Virtual Machine & Execution
- Add join, and aggregation operators
- Add support for indexes
- Storage & Durability
- Improve page and heap management
- Add WAL (Write-Ahead Log) for durability
- Implement basic transactions and locking
Contributions welcome — pick a TODO and open a PR.

