The native high-level API is the C++ typed table layer in akkaradb/AkkaraDB.hpp. It keeps the direct AkkEngine storage model, but lets C++ code work with structs, primary keys, secondary indexes, query expressions, references, joins, and schema hooks.
Use it when you are embedding AkkaraDB Native in a C++ application and want table-like operations without manually building byte keys and byte values. Use the low-level AkkEngine API when you need exact control over the binary key layout, server/protocol integration, or internal engine behavior.
Read By Goal
Section titled “Read By Goal”| Goal | Page |
|---|---|
| Open a database, define structs, and use typed table operations | High-Level API Usage |
Understand how typed tables, indexes, refs, joins, and schema hooks map onto AkkEngine | High-Level API Architecture |
| Configure the owner object and startup mode | AkkaraDB |
| Use typed CRUD, scans, indexes, hooks, and row ids | PackedTable |
| Write typed C++ query expressions and understand index planning | Query |
| Model row-id references and typed joins | Ref And Join |
| Register schema hooks and foreign-key actions | Schema And Foreign Keys |
| Understand value encoding and migration boundaries | BinPack And Compatibility |
Main Types
Section titled “Main Types”| Type | Role |
|---|---|
akkaradb::AkkaraDB | Owns an engine::AkkEngine instance and opens typed tables. |
akkaradb::PackedTable<&T::id> | Stores C++ structs by primary key and exposes typed CRUD, scan, query, index, reference, and join helpers. |
AKKARADB_ENTITY(Type, PrimaryKey, ...) | Registers primary-key metadata and queryable fields for a struct. |
AKKARADB_QUERYABLE(Type, ...) | Registers fields for the C++ query proxy without declaring reference traits. |
akkaradb::Ref<T> | Stores a stable row-id based reference to another entity. |
akkaradb::AkkaraDB::Schema | Registers tables and foreign-key style hook behavior. |
This layer is still backed by AkkEngine. WAL, memtables, SSTables, blobs, VersionLog, API server, and cluster behavior are controlled by the engine options used when the database is opened.