OPEN SOURCE · 23 OCTOBER 2026

Open source, and what that covers.

The engine, the HTTP API and the command-line tools are open source under the MIT licence. This page says how to build them from source, which platforms they are tested on, what that testing covers and what is not published yet.


WHAT IS OPEN

Which parts you can read and run.

The public repository is the core that records and verifies history. It is not the hosted application.

  • Open: engine, API and command-line tools

    The event-log, versioning and merge engine, the HTTP API and the command-line tools are published under the MIT licence in the public repository. It is early software, version 0.1, and no package has been published to crates.io.

  • Not open: the workspace and this website

    The web workspace, the editor add-ins and this website are proprietary and live in a private repository. The public repository has no browser editors, no production configuration, no credentials and no user documents.

  • Your documents stay yours

    Private document content you put into the hosted app does not become open source. Open source here describes the code, not the content.


BUILD FROM SOURCE

Build and test it yourself.

You need Rust at the version the repository pins. To run the tests you also need PostgreSQL 16, and the repository uses Docker and Task to start one.

  1. STEP 01 · get the source
    git clone https://github.com/ArefinAlter/dynodoc-engine.git
  2. STEP 02 · build everything
    cargo build --workspace --locked
  3. STEP 03 · check the command-line tool
    cargo run --locked -p engine-cli -- --version
  4. STEP 04 · run the tests (needs PostgreSQL 16)
    cargo test --workspace --locked

The tests need a database login that is allowed to create databases and roles, so point them at a throwaway PostgreSQL, never at one that holds data you keep. Running the API itself needs a few settings and a restricted database login. The repository README gives those steps, from task up to task run. Read the README


PLATFORMS

Where it is built and tested.

Linux, macOS and Windows, on Intel or AMD processors and on Arm. Every job builds the whole workspace and runs the whole test suite against PostgreSQL.

Platforms, support tier and test results
PlatformTierTests passedReal key store tested
Linux x86-64Tier 1Main CI workflowSecret Service (GNOME Keyring)
Linux Arm (aarch64)Tier 11,285Secret Service (GNOME Keyring)
macOS, Apple siliconTier 11,285Keychain (a temporary keychain)
macOS, IntelTier 11,284Keychain (a temporary keychain)
Windows x86-64Tier 11,285DPAPI
Windows on Arm (aarch64)Tier 2, not blocking1,285DPAPI

Tier 1: a failing build or test on that platform fails the workflow. Tier 2: built and tested, but a failure is reported without blocking, and nothing stronger is promised. Not supported: 32-bit systems, RISC-V, big-endian systems, musl, and Linux distributions older than the glibc floor below.


WHAT THE CHECKS PROVE

One run, with its date.

A row above is true for the commit its run names. The figures here come from one run of the engine repository’s platform workflow.

1,285 Rust tests passed on Linux Arm, Apple-silicon Macs, Windows and Windows on Arm. Intel Macs passed 1,284. The run started on 20 October 2026 (UTC) and all six jobs succeeded.

Each job built the workspace with a locked dependency list, ran the whole test suite against PostgreSQL, regenerated the OpenAPI file and compared it with the checked-in copy, and used the operating system’s real key store to protect a signing key, open it again and remove the stored secret. On Linux the key store job ran on both processors. On macOS it used a temporary keychain, and the login keychain was checked to stay clean.


PREBUILT TOOLS

No release is published yet.

Prebuilt command-line tools will be published as GitHub releases; none is published yet. Until one is, build from source.

The project’s release workflow has built engine-cli and engine-api natively for all six platforms, run each binary it built, unpacked each archive into a clean folder and run it again from there. Three of the archives were also downloaded and run outside CI, one on a Windows PC and two in Linux containers. The step that publishes a release has never run, because running it would publish a release in the public repository. This section describes how a release will be checked, and it is not a download page.

How a release will be verified

A release will have one archive for each of the six targets, holding engine-cli, engine-api, the licence and a short README, and one SHA256SUMS file. Compare the checksum before you run anything.

Linux

sha256sum --check --ignore-missing SHA256SUMS

macOS

shasum -a 256 -c SHA256SUMS --ignore-missing

Windows (PowerShell)

Get-FileHash .\archive.zip -Algorithm SHA256

On Windows, replace archive.zip with the name of the downloaded archive and compare the result with the line for it in SHA256SUMS. A checksum shows that a file is the one the release workflow built. It does not show who wrote the source.

The binaries will not be signed or notarised. The project has no code-signing certificate. macOS Gatekeeper blocks a downloaded unsigned binary: once the checksum matches, run xattr -d com.apple.quarantine engine-cli engine-api, or open it once with a right click and Open. Windows SmartScreen shows an unknown-publisher warning: once the checksum matches, choose More info, then Run anyway. Linux shows no warning.

What they need from the system

System requirements of the prebuilt tools
TargetNeeds
Linux x86-64 and Armglibc 2.34 or newer, which covers Ubuntu 22.04, Debian 12 and RHEL 9.
macOS, Apple silicon and IntelmacOS 11 or newer. System libraries only.
Windows x86-64 and ArmNo Visual C++ redistributable. Windows 10 or newer is Rust’s own minimum for the target; it was not tested on a Windows 10 computer.

CONTAINER IMAGE

Built for amd64 and arm64.

A container image of the API and the command-line tool is built and started in CI. It is not published yet.

The repository’s Dockerfile puts engine-api and engine-cli on Debian 12 (bookworm-slim) and runs them as a non-root user. CI builds it natively for linux/amd64 and linux/arm64, on a runner of each processor. Each job checks the image’s architecture, runs engine-cli --version, checks that engine-api refuses to start without configuration, and checks the user id. Both passed.

The images are not signed and carry no software bill of materials. The step that pushes them to a registry has not run, so there is no image to pull.


KNOWN LIMITS

What these checks do not cover.

The support record lists these too. They are repeated here so nobody has to find them.

  • Windows on Arm is tier 2. It has no native PostgreSQL, so its job runs an x64 build of PostgreSQL 16 under emulation while the engine under test is native Arm. That job takes about 40 minutes.
  • Windows x86-64 uses the PostgreSQL 17 that the runner image ships; every other platform uses PostgreSQL 16. The tests pass on 17.
  • One latency test, which asserts that a server-sent event arrives within 100 milliseconds, runs in its own non-blocking step on Windows x86-64, Windows on Arm and Intel Macs. It failed on both Windows platforms every time it was recorded. It is not weakened, and it still blocks on the other platforms.
  • Four tests are not run on any platform in the main run: a compression measurement, planning a hundred thousand commits, a million-leaf property test, and the real key store test, which has its own step.
  • Tests run on the debug profile. The release binaries are only smoke tested: the version, the help text and the refusal to start without configuration.
  • Not covered anywhere: real hardware and devices, 32-bit systems, big-endian systems, RISC-V, musl, Linux distributions other than Ubuntu, macOS older than 15 and Windows 10. The macOS 11 and glibc 2.34 floors are build settings, not test results.
  • On Windows, the files that hold secrets for the API are not checked for permissions, and the hidden passphrase prompt is not tested in CI.
  • On Linux the operating system key store needs a running Secret Service, which headless servers usually lack. A passphrase file is the tested alternative.

READ IT, RUN IT, TELL US

The code is public.

Found a problem? A security issue goes through private reporting. Anything else goes to the issue tracker.