This repository contains the documentation for Softadastra Engine.
Softadastra Engine is the offline-first runtime layer inside the Softadastra C++ tooling ecosystem.
It helps C++ applications keep useful work local, durable, recoverable, and ready to synchronize when the network is slow, unstable, expensive, or unavailable.
The core model is:
write locally
persist safely
recover after failure
retry when needed
sync when possibleSoftadastra Company is focused on one clear direction:
The C++ Tooling CompanyThis documentation is for the engine layer, not for a broad SaaS product or cloud platform.
concepts -> why the engine exists
CLI -> how to inspect and control the engine locally
SDK C++ -> how to use the engine from C++
engine -> how the runtime works internally
guides -> practical workflows
reference -> commands, APIs, configuration, and errors
releases -> changelog and build notesThe concepts section explains the mental model behind Softadastra Engine.
It covers:
- offline-first
- local-first
- failure model
- WAL
- durable store
- retry
- sync
- recovery
Start here if you want to understand the system before using it.
The CLI section explains how to use Softadastra Engine from the terminal.
It covers:
softadastra statussoftadastra versionsoftadastra store putsoftadastra store getsoftadastra store remove- runtime inspection
- local diagnostics
Use this section when you want to inspect and test the engine locally.
The C++ SDK section explains the public C++ API.
It covers:
ClientClientOptions- local store
- persistent store
- durable writes
- reads
- recovery
- errors
- examples
Use this section when building C++ applications with Softadastra Engine.
The engine section explains the internal runtime architecture.
It covers:
- core
- WAL
- store
- retry
- sync
- transport
- metadata
- CLI integration
Use this section when contributing to internals or understanding how the engine is built.
The guides section gives practical workflows.
It covers:
- build an offline-first C++ app
- persist data locally
- recover after restart
- inspect local state
- use the C++ SDK with the engine
- prepare for release
Use this section when you want to build something end to end.
The reference section gives compact lookup pages.
It covers:
- CLI reference
- C++ API reference
- configuration reference
- error reference
Use this section when you already understand the model and need exact names quickly.
The releases section documents version changes and build verification.
It covers:
- changelog
- builds
- release checks
- artifact verification
Use this section when preparing or checking a release.
JavaScript and TypeScript runtime work belongs to Kordex.
Kordex is a JavaScript and TypeScript runtime built on Vix.cpp for reliable local-first applications.
Softadastra Engine can be exposed to JavaScript through Kordex native modules, but this documentation keeps the main SDK path focused on C++.
Vix.cpp
-> C++ runtime and developer tooling foundation
Softadastra Engine
-> offline-first runtime layer
Cnerium
-> retry-safe backend reliability for Vix applications
Kordex
-> JavaScript and TypeScript runtime built on Vix.cpp
Pico
-> validation application proving Vix.cpp in a real backendFor new users:
- What is Softadastra Engine?
- Installation
- Quick Start
- Concepts
- C++ SDK Overview
- Engine Overview
For C++ SDK users:
- C++ SDK Overview
- C++ SDK Installation
- C++ SDK Quick Start
- C++ SDK Examples
- Errors Reference
For engine contributors:
- Engine Overview
- Architecture
- Runtime Flow
- Modules
- Releases
From the documentation project root:
npm installStart the documentation server:
npm run devThen open the local URL printed by VitePress.
Build the static documentation site:
npm run buildFor VitePress, the generated output is usually:
.vitepress/distAfter building:
npm run previewA typical package.json can expose:
{
"scripts": {
"dev": "vitepress dev .",
"build": "vitepress build .",
"preview": "vitepress preview ."
}
}If the project uses another layout, adapt the commands to the directory that contains .vitepress/.
Each page should stay clear, practical, and focused.
Recommended structure:
definition
why it exists
core model
usage
example
expected output
common mistakes
next stepWrite for developers who need to understand how the engine works and how to use it inside real C++ applications.
Use clear sentences.
Prefer concrete examples.
Keep responsibilities separate:
store -> current local state
WAL -> durable operation history
retry -> failed work tracking
sync -> propagation foundation
transport -> delivery layer
metadata -> node and runtime information
CLI -> terminal interface
SDK -> application API
engine -> internal runtime modulesDo not present experimental behavior as stable.
If a command, option, API, or output format is experimental, say so or keep it out of the stable reference.
Every section should preserve this idea:
local work should not depend on network availabilityA local store operation should not require:
- remote server
- connected peer
- transport
- discovery
- cloud access
Sync can happen later.
When persistence is enabled:
local write
↓
WAL append
↓
store apply
↓
recover laterA WAL path should be:
- non-empty
- inside an existing directory
- writable
- stable across restarts
- unique per node or application store
Softadastra Engine APIs should make errors explicit.
C++:
auto result = client.get("app/name");
if (result.is_err())
{
std::cerr << result.error().message() << "\n";
return 1;
}
std::cout << result.value().to_string() << "\n";CLI:
error: key not found
key: app/nameThe rule is:
Check the result before using the value.Before publishing documentation, run:
npm install
npm run buildThen verify that important sections exist:
/
welcome
what-is-softadastra
installation
quick-start
/concepts/
/cli/
/sdk-cpp/
/engine/
/guides/
/reference/
/releases/Also check that sidebar links match actual file names.
When adding a new page:
- Create the markdown file.
- Add it to
.vitepress/config.mjs. - Link it from the relevant section index.
- Add a next-step link if it belongs to a learning path.
- Run the docs build.
npm run buildFix broken links before publishing.
softadastra/softadastra -> Softadastra Engine
softadastra/sdk -> C++ SDK
softadastra/docs -> documentation
softadastra/cnerium -> backend reliability layer for Vix
softadastra/kordex -> JS/TS runtime built on Vix.cpp
vixcpp/vix -> C++ runtime and developer tooling foundationUse the same license as the Softadastra documentation repository.
If the repository contains a LICENSE file, that file is the source of truth.
Softadastra Engine documentation explains the offline-first engine from first concepts to C++ integration.
The core model remains:
write locally
persist safely
recover after failure
retry when needed
sync when possibleSoftadastra Engine starts with local durability.
The network comes later.