Skip to content

Repository files navigation

enigma

Engine and idea inpired by Rocks, the name is inspired by my favorite Soft Support/Offlaner Enigma in Dota 2.

Directory Architecture

enigmadb/
├── CMakeLists.txt              (root build file)
├── cmake/                      (CMake helper modules)
├── include/enigmadb/           (public headers the API surface)
│   ├── common/                 (Result type, error codes, types, platform detection)
│   ├── io/                     (I/O abstraction, POSIX / io_uring layer)
│   ├── storage/                (storage engine public interface)
│   ├── <model>/                (wide column model)
│   ├── query/                  (query engine)
│   └── server/                 (networking)
├── src/                        (implementation files, mirrors include/ structure)
│   ├── common/
│   ├── io/
│   ├── storage/
│   ├── document/
│   ├── query/
│   └── server/
├── tests/                      (mirrors src/ structure)
│   ├── common/
│   ├── io/
│   ├── storage/
│   └── ...
├── bench/                      (microbenchmarks)
├── tools/                      (CLI shell, utilities)
└── third_party/                (vendored dependencies)

Debugging and tols

Have created a bunch of tools to help debug and understand stuff inside tools dir

cmake -B build -DCMAKE_BUILD_TYPE=Debug -DENIGMADB_BUILD_TOOLS=ON
cmake --build build --target sstable_dump
./build/tools/sstable_dump path/to/sst_00000001.db

Platform

Note that this WILL NOT compile on Windows machines.

  • MacOS (Apple Silicon)
  • Linux (Trixie, partial NOT under ASan)

Todo's and Fixme's

  • Doesn't compile in Debug under ASan in Linux
  • Most of system is missing logging

About

No description, website, or topics provided.

Resources

Stars

6 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages