Skip to content

Latest commit

 

History

27 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SharpLite

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.

Features

  • 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

View architecture diagram Inline expanded image

Running the CLI

To run the CLI project:

dotnet run --project src/SharpLite.Cli

Contributing

Feel free to open issues or pull requests with fixes, tests, or enhancements.

TODO / Roadmap

  • 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.

About

RDBMS written entirely from scratch in C#

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages