Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Positorium

Positorium

A database for facts that disagree.

Positorium preserves conflicting claims instead of forcing them into one current value. Every assertion can retain its source, certainty, appearance time, and assertion time, so corrections never erase the evidence that came before.

It is an experimental embedded evidence database with an immutable posit model, the Traqula query language, an append-only native store, Python bindings, a trusted-local HTTP service, and an in-browser WASM testbed.

The repository is preparing 0.1.4-beta.2; the latest tagged release is 0.1.4-beta.1. Beta means the documented language, storage, transfer, and interface versions have explicit compatibility rules; it does not mean an Internet-facing or production-ready service.

Run the 60-second browser example · Get started · Browse all documentation

Python

The source tree contains an embedded Python package for CPython 3.9+ on Linux, macOS, and Windows. It needs no separate Positorium server. Until beta.2 is published to PyPI, install it from a source checkout with Rust available:

python -m pip install .

After beta.2 is published, the prerelease install will be:

python -m pip install --pre positorium
import positorium

with positorium.Database.memory() as database:
    result = database.execute_one(
        'add role name; add posit [{(+person, name)}, "Ada", @NOW]; '
        'search [{(?person, name)}, ?name, *] return ?person, ?name;'
    )
    print(result[0]["person"].text, result[0]["name"].text)

Use Database.open("positorium.store") for an append-only persistent store. Results retain each cell's kind and exact entered text. See the Python guide for typed parameters, Terrain, Pandas, exceptions, and lifecycle rules.

Why Positorium?

Most databases converge on one current value. Positorium preserves evidence:

  • contradictory posits remain available instead of overwriting each other;
  • expressed time precision is part of the stored fact;
  • assertions record who ascertained a posit, with signed certainty and time;
  • snapshots and in effect queries make resolution policy explicit; and
  • exact entered literals survive native storage, HTTP, SSE, and WASM results.

This is useful for compliance evidence, investigations, conflicting master data, and other domains where evidence accumulates and is revised. Positorium can serve as a focused evidence layer alongside existing operational systems; it does not need to replace them.

Five-minute source checkout

Install rustup, then build and start the trusted-local server from the repository root:

cargo build --release --locked
./target/release/positorium

In another terminal, resolve or create one identity:

curl --fail-with-body --silent --show-error \
  http://127.0.0.1:8080/v1/query \
  -H 'content-type: application/json' \
  --data '{"traqula_version":1,"script":"add role name; search [{(?person, name), ...}, \"Ada\", *] return ?person or add posit [{(+person, name)}, \"Ada\", @NOW];","stream":false}'

The response should have "status":"ok" and one thing result cell. Stop the server with Ctrl-C. The default creates positorium.store and reopens it on the next start.

For release archives, checksum verification, Windows commands, persistence checks, backup, Query Studio setup, and troubleshooting, follow Getting started.

Beta boundaries

  • The native server binds to 127.0.0.1 by default and has no authentication. Never expose it to an untrusted network.
  • One process owns a store and executes scripts serially.
  • The append-only store detects committed corruption but is not a tamper-proof audit log.
  • Authentication, replication, distributed execution, and container packaging are outside the current beta.
  • Independent contract versions are listed in Contracts.

Current capabilities

  • Immutable Things, Roles, appearance sets, posits, and assertion envelopes
  • Lossless literal tokens and precision-aware temporal relations
  • Traqula joins, union, safe not exists, snapshots, typed predicates, in effect, parameters, distinctness, ordering, and limits
  • Atomic durable mutation batches with deterministic replay and recovery
  • Inspection, physical backup, logical export/import, and identity remapping
  • Structured Rust, buffered HTTP, SSE, and WASM results
  • Embedded Python 3.9+ bindings with structured lossless results
  • Query Studio and authoritative Terrain structural reports

Documentation

Start here Purpose
Getting started Install, run, query, restart, back up, and troubleshoot
Python Install the wheel, embed a database, bind parameters, and consume results
The Blackthorn Ruby Interactive detective story and full Query Studio/Terrain showcase
Traqula Language and query reference
Cookbook Worked modeling and maintenance recipes
Operations Durability, recovery, limits, and deployment posture
Core model Identity, literal, temporal, and snapshot semantics
Storage Append-only format contract
Transfer Backup, export, import, and identity remapping
Terrain Structural report and visualization contract
Theory Philosophical foundations
Roadmap Remaining and post-beta work

The documentation index also links compatibility decisions, benchmarks, and maintainer specifications. The original paper, Modeling Conflicting, Unreliable, and Varying Information, provides additional background.

Development checks

The repository pins the stable Rust toolchain and runs native checks on Linux, macOS, and Windows plus a browser WASM suite.

cargo fmt --all -- --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test --all-targets --all-features --no-fail-fast
cargo test --all-targets --no-default-features --no-fail-fast
node tests/terrain_client.test.js

See Extending Traqula before changing the language or synchronized editor grammar.

License

Dual-licensed under Apache 2.0 or MIT, at your option.

SPDX-License-Identifier: Apache-2.0 OR MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

positorium-0.1.4b2.tar.gz (676.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

positorium-0.1.4b2-cp39-abi3-win_amd64.whl (889.9 kB view details)

Uploaded CPython 3.9+Windows x86-64

positorium-0.1.4b2-cp39-abi3-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ x86-64

positorium-0.1.4b2-cp39-abi3-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

positorium-0.1.4b2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (968.8 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ x86-64

positorium-0.1.4b2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (900.0 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

positorium-0.1.4b2-cp39-abi3-macosx_11_0_arm64.whl (874.0 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

positorium-0.1.4b2-cp39-abi3-macosx_10_12_x86_64.whl (929.6 kB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

Details for the file positorium-0.1.4b2.tar.gz.

File metadata

  • Download URL: positorium-0.1.4b2.tar.gz
  • Upload date:
  • Size: 676.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for positorium-0.1.4b2.tar.gz
Algorithm Hash digest
SHA256 ec9fa3671afd36e2602500b3b2637e4c9ce3898590405df27687e6a7639fd10a
MD5 2d4eb363968494c18a2e28529c11b405
BLAKE2b-256 27afb0c06d44d28722f9000a815f7bc23eedbf01a8805d20d2f68b99b206caf9

See more details on using hashes here.

Provenance

The following attestation bundles were made for positorium-0.1.4b2.tar.gz:

Publisher: python.yml on Roenbaeck/positorium

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file positorium-0.1.4b2-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: positorium-0.1.4b2-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 889.9 kB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for positorium-0.1.4b2-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 fca1697c1abedf3dd3b8e636488524c3ff90566044551679ca4fcb8ecc10eb33
MD5 1c55d19b814ed682947618eb48b5260d
BLAKE2b-256 70e77ac0137ab524ff0e56ab75bc63689167f1be489a593a9c9c2d647ebd680f

See more details on using hashes here.

Provenance

The following attestation bundles were made for positorium-0.1.4b2-cp39-abi3-win_amd64.whl:

Publisher: python.yml on Roenbaeck/positorium

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file positorium-0.1.4b2-cp39-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for positorium-0.1.4b2-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5df16f612ccb7d8a4f47025d631a36f2ff36ac2301a6cd5f89c277a806822b88
MD5 60e1a515904baffde9eda7c36f6bc382
BLAKE2b-256 6699ef30269e4842bc50d32df610d56fe18cf172a23dafa83e557a0c844d9aa1

See more details on using hashes here.

Provenance

The following attestation bundles were made for positorium-0.1.4b2-cp39-abi3-musllinux_1_2_x86_64.whl:

Publisher: python.yml on Roenbaeck/positorium

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file positorium-0.1.4b2-cp39-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for positorium-0.1.4b2-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 fc44504e7330af16c949e309befa25bb442e4524d56f0c24af7e919ea8237f5a
MD5 3983843b8d5e35331546d6173be779e3
BLAKE2b-256 3c56143df2742459c962d4dd5ecc3884b60022615efa2bb9d830568f0f665374

See more details on using hashes here.

Provenance

The following attestation bundles were made for positorium-0.1.4b2-cp39-abi3-musllinux_1_2_aarch64.whl:

Publisher: python.yml on Roenbaeck/positorium

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file positorium-0.1.4b2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for positorium-0.1.4b2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7fe3d25fea8b748b6d8fb5c6c03b901b976cd9a614c03e49a19cf36000023cae
MD5 84053493aae7b4ef84c4089625520f31
BLAKE2b-256 b989102b75f6da26d85ef67721a0291ca4f926e886903116b160096da4da29d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for positorium-0.1.4b2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: python.yml on Roenbaeck/positorium

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file positorium-0.1.4b2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for positorium-0.1.4b2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1c37b40ad3effb807e8e6748da8974bf0ed35698eb70abb907ed6977fc8b6034
MD5 c4c3600251e7378e1919f1fa2a1a05d8
BLAKE2b-256 7e340f10ae470a5648684db06fc34671dbf8356f9dbf4f3b736ae2f276f89b51

See more details on using hashes here.

Provenance

The following attestation bundles were made for positorium-0.1.4b2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: python.yml on Roenbaeck/positorium

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file positorium-0.1.4b2-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for positorium-0.1.4b2-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5db2d4ea4a4e06314e4b1db33b0b4a588affb07cdb014fc99a2197b6f6a79e6e
MD5 52c989c99c9114dfe9a774316b26933b
BLAKE2b-256 7f395df891bf140249ca31e80f9b49a14472e2ac6bd9b2ff79760e05b7458d55

See more details on using hashes here.

Provenance

The following attestation bundles were made for positorium-0.1.4b2-cp39-abi3-macosx_11_0_arm64.whl:

Publisher: python.yml on Roenbaeck/positorium

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file positorium-0.1.4b2-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for positorium-0.1.4b2-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 de2504666196c412d7d44c55fd720259067f930add8fb4c165a8c7f4ce10950f
MD5 f9f42cd6bd17edc30818da01fe70a3c3
BLAKE2b-256 793b7723dbf50326277853d199fa1368a84e047cdc0073b53b42e62191f9d12a

See more details on using hashes here.

Provenance

The following attestation bundles were made for positorium-0.1.4b2-cp39-abi3-macosx_10_12_x86_64.whl:

Publisher: python.yml on Roenbaeck/positorium

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.4b2 This release

8 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page