Skip to content

Enso is an experimental database engine built to explore storage engines, query execution, and networking.

License

Notifications You must be signed in to change notification settings

aether-flux/ensodb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EnsoDB

EnsoDB is a lightweight, embedded-first database written in Rust, designed for learning, hacking, and building developer-friendly systems from the ground up.

It focuses on:

  • simple internals
  • explicit abstractions
  • clean APIs
  • and a gradual path from local usage → networked database

⚠️ EnsoDB is experimental and currently in early development.


Features

  • File-backed storage engine
  • Schema-based tables
  • Primary key indexing
  • Insert / Select / Delete support
  • Custom SQL-like DSL (in progress)
  • Interactive REPL
  • TCP server for remote connections
  • Rust-first API design

Installation

Linux

curl -fsSL https://raw.githubusercontent.com/aether-flux/ensodb/main/install/linux/install.sh | sh

Windows

Powershell:

iwr -useb https://raw.githubusercontent.com/aether-flux/ensodb/main/install/windows/install.bat | iex

This starts:

  • the EnsoDB REPL
  • a TCP server (default: 127.0.0.1:5432)

Example (REPL)

[test_db] > INSERT INTO users VALUES(1, "user_name");
1 row(s) affected

[test_db] > SELECT * FROM users;
| id | name |
|----|------|
| 1  | user_name |

TCP Server

EnsoDB exposes a simple text-based TCP protocol.

  • One query per line
  • Results returned as text
  • Responses terminated with a protocol EOF marker

This allows external clients (CLI tools, SDKs) to connect.


Motivation

EnsoDB exists to:

  • understand database internals
  • explore Rust system design
  • and build a database feels good to use

License

MIT

About

Enso is an experimental database engine built to explore storage engines, query execution, and networking.

Resources

License

Stars

Watchers

Forks

Packages

No packages published