Naming¶
A handful of names appear across the documentation and refer to different
things. The relationship at the centre: one C++ engine — Viper C++ —
exposed to application code through two language bindings over the same
runtime and the same on-disk format: dsviper for Python and
@digitalsubstrate/dsviper for Node.js. The DevKit is what you
download.
DevKit¶
What you download.
The Digital Substrate Python toolkit, distributed as a single ZIP. It bundles:
kibo— the code generatorkibo-template-viper— the template pack that targets the viper runtimedsviper-tools— CLI utilities (dsm_util,commit_database_server.py,commit_admin.py) and two GUI editors:cdbe.py(Commit Database Editor, forCommitDatabase) anddbe.py(Database Editor, plain CRUD for the non-versionedDatabasebackend)
The dsviper runtime is not bundled in the DevKit ZIP — it is installed
separately from PyPI (see below).
Versioning tracks ecosystem releases (e.g. 1.2.x). Distribution and
download from the website (digitalsubstrate.io).
dsviper for Python¶
What runs in your Python apps.
The Python binding — a strongly typed Python API over the Viper C++ engine. It carries the type system, value system, mutation DAG, database tier, serialization, and RPC, and exposes them as Python classes and functions.
Distribution. dsviper is published exclusively on
PyPI <https://pypi.org/project/dsviper/>_ (pip install dsviper). It is
not bundled in the DevKit ZIP — the ZIP carries the toolchain (Kibo,
kibo-template-viper, dsviper-tools); installing dsviper itself
is a separate pip step.
dsviper is the Python binding; a Node.js binding over the same engine is
published separately as @digitalsubstrate/dsviper (below).
@digitalsubstrate/dsviper¶
What runs in your Node.js apps.
The Node.js binding — a native addon over the same Viper C++ engine as the
Python dsviper, exposing the same runtime and the same on-disk format. It
covers the dynamic API (runtime type and value systems, definitions, commit
tier) with Java-like value semantics (equals / hash / compare, no
operator overloading). See dsviper for Node.js.
Distribution. Published on npm as @digitalsubstrate/dsviper
(npm install @digitalsubstrate/dsviper), shipped as prebuilt native binaries.
Note that the two bindings differ by registry: the Python package is the bare
dsviper on PyPI, the Node package is scoped @digitalsubstrate/dsviper on
npm. They share the runtime, not the package name. Like the Python dsviper,
it is not bundled in the DevKit ZIP, and it is covered by the same commercial
license as the engine.
Viper C++¶
The C++ engine behind dsviper.
Distributed under commercial license. Contact us for access to the C++ runtime.
Documentation scope. This site describes the architecture and uses C++ snippets to illustrate the engine layer where relevant. A complete C++ API reference — headers, integration patterns — is delivered alongside the runtime under commercial license, not mirrored here.