Skip to main content

Credos: Conflict-free Replicated Document Store

This is a work-in-progress package and not yet functional. (Popping a squat in the namespace real quick.)

The goal of this project is to create a replicated storage package using CRDTs and sqlite3 via the crdts and sqloquent packages, respectively. Using CRDTs, any number of updates can be made to a local replica without the need for any consensus or commitment mechanism -- so long as all updates (state deltas) are eventually applied by all replicas, all replicas will converge to the same state. Additionally, authorization will use tapescript, and serialization will probably use packify in early dev stages.

Ever want to have a replicated database with sub millisecond reads and writes that did not cost a fortune in dedicated database hosting costs? This should allow for applications to be built using an entirely new database model that requires only a few bootstrap nodes to connect application servers for blazingly bonkers fasterest databaseness.

Goals

The following are what will comprise the base system:

  • Base models: LWWRegister/LWWMap + sqloquent
  • Replicated key-value/document store
  • Synchronization worker
  • Auth system for sync protocol messages

Stretch Goals

The following are ideas I am contemplating once the base system is done:

  • Sharded key-value/document store using Highest Random Weight/Rendezvous Hashing
  • Record-level ACL

ISC License

Copyright (c) 2024 Jonathan Voss (k98kurz)

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyleft notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Metadata

Release files for credos 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for credos 0.0.1
File Size Uploaded Provenance
credos-0.0.1.tar.gz 2.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for credos 0.0.1
File Interpreter ABI Platform
credos-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 4.7 kB

Release files / credos-0.0.1.tar.gz

Download URL credos-0.0.1.tar.gz
Size 2.3 kB
Tags Source
SHA-256 checksum
How to use checksums
8c729b99fcb66a985958358bb652eeb2a80d4c080801911be064a5bd1f5ee6c9
BLAKE2b-256 checksum
How to use checksums
5b8f55d01afab727ec65178b098939492082b9ff9fcdeeabcced1be74c85abe9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.10.12

Release files / credos-0.0.1-py3-none-any.whl

Download URL credos-0.0.1-py3-none-any.whl
Size 2.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dd4465280927f2783dcc4b1b35ca4e655804c0a18a106f7f667108152bf7c453
BLAKE2b-256 checksum
How to use checksums
197ca775791644bf3b2ff2c96d9133730bdf5c69e3ff551ebb47172976880205
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.10.12

Security for credos 0.0.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files No provenance

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