I released KoutenDB v0.8.0.
Release:
https://github.com/puffball1567/koutendb/releases/tag/v0.8.0
This release is different from v0.7.0. The previous release focused on storage,
transport, recovery, authorization, and operational hardening. v0.8.0 carries
that work forward under the project's new active name: KoutenDB.
This is primarily a naming and migration release, not a new storage-engine
feature release. However, the migration reaches across the complete public
surface, so it is more than changing the title in the README.
The v0.7.0 to v0.8.0 Diff
The Git diff between the two release tags reports:
- 188 changed files
- 3,970 insertions
- 4,203 deletions
Most of that volume is rename churn. Source modules, tests, examples, scripts,
documentation, CI, headers, and driver foundations all had to move together.
The high-level difference is:
| Area | v0.7.0 | v0.8.0 |
|---|---|---|
| Project | RocheDB | KoutenDB |
| Nim package/module | rochedb |
koutendb |
| CLI | roche |
kouten |
| Daemon | roched |
koutend |
| C ABI library | librochedb.so |
libkoutendb.so |
| C header | include/rochedb.h |
include/koutendb.h |
| C symbol prefix | roche_* |
kouten_* |
| Repository | puffball1567/rochedb |
puffball1567/koutendb |
Configuration names and build variables were migrated to the KOUTEN_* and
KOUTENDB_* families as well.
Why KoutenDB?
Kouten comes from the Japanese word kouten (公転), meaning orbital
revolution: one body moving around another.
That meaning matches the database model. KoutenDB treats rings,
orbit-inspired placement, and locality as part of retrieval. When an
application has a meaningful locality boundary, the database can use it to
reduce unrelated reads, transferred bytes, candidate memory, and downstream
AI/RAG or application work.
The name changed, but this technical direction did not.
The Migration Reaches the Whole Public Surface
For Nim users, new code should import koutendb:
import koutendb
var db = koutendb.open(dataDir = "data")
let id = db.put("""{"title":"Hello"}""", ring = "docs/japan")
echo db.get(id)
Command-line examples now use kouten:
kouten put --ring=docs/japan --payload='{"title":"Hello"}'
kouten get --ring=docs/japan
Server processes now use koutend:
koutend --id=0 --peers=h1:7301,h2:7301,h3:7301 --data=/var/lib/kouten
The C ABI migration is intentionally explicit. Consumers should include
include/koutendb.h, link against libkoutendb.so, and call the kouten_*
symbols. This keeps the public native boundary internally consistent, but it
also means existing C ABI consumers need to update and rebuild.
Drivers and Package Names
The driver-facing names were migrated too. Published packages now use the
KoutenDB name for Rust, JavaScript/TypeScript, PHP, Python, and C++ distribution
paths, while the in-repository C#, Go, Kotlin, Node, PHP, Swift, and C++
foundations were updated to the same naming scheme.
One structural cleanup is also part of the v0.7.0 to v0.8.0 diff: the old
in-repository Python driver was removed from the core repository. Python support
continues as a separately maintained and published native TCP driver:
https://github.com/puffball1567/koutendb-python
This avoids keeping two copies of the Python implementation in different
release flows.
What Did Not Change?
KoutenDB remains a technical preview and research OSS project. Its core thesis
is still:
Use meaningful placement to reduce the amount of data that must be read,
transferred, held in memory, and passed to downstream systems.
The ring-oriented NoSQL document/vector model, locality-aware retrieval goal,
and smaller-working-set focus continue from v0.7.0. v0.8.0 does not claim a new
benchmark result or a new storage-engine capability merely because the code
diff is large.
Migration Quickstart
For a new Nim installation:
nimble install koutendb
kouten --help
To build from source:
git clone https://github.com/puffball1567/koutendb.git
cd koutendb
nimble check
scripts/test_all_smoke.sh
Existing integrations should check these areas:
- Nim imports and package dependencies
- CLI and daemon command names
- environment and configuration variable names
- C headers, shared-library names, and symbol prefixes
- driver package and repository URLs
- documentation and CI scripts that contain the previous names
Verification
The v0.8.0 rename was checked across the core Nim modules, CLI, daemon, C ABI,
core tests, CLI CRUD smoke tests, TLS-enabled C ABI tests, driver compatibility,
and the complete smoke suite. The rename PR also passed the Linux and macOS C
ABI jobs in GitHub Actions.
KoutenDB v0.8.0 is available here:
Top comments (0)