Skip to content

Repository files navigation

OurSQL mascot: a dolphin in an ushanka with a red star

OurSQL

The people keep the means of data hosting.

A Rust database you run yourself.
Queried in NashCQL. Certified by a mesh of plants.
Bureaucracy is a crate. Default intensity 25.


OurSQL is a memory-safe store for comrades who keep their own disks. There is no landlord cloud. Each operator hosts a slice of the kollektiv. The query language is NashCQL: English after a long march (PERESTROJ, INZRT, ZAVERSHIT), typeable on a US keyboard.

The engine runs. The satire is specified. Intensity is one integer 0..=100. At 25 a competent app with retry can store and retrieve rows. At 0 the bureau only talks. At 100 you are in a demo.

NashCQL is the US-keyboard rendering of "Nash SQL" ("our SQL"). Official docs are ASCII. The dolphin does not speak.

What this is

Claim Meaning
Memory-safe Rust, no unsafe. Encrypted 16 KiB pages. WAL is CRC, not ciphertext.
Auth HELLO + bilets after a key. First socket is founder. Bind stays localhost.
Multi-host You run oursqld. Repair works. Mesh APPLY is whoever can TCP.
Oppressive Dossiers, rations, accusations, confiscation, gulag rate limits
Functional WAL, crash recovery, planner -- at intensity 25

This is 0.2.0. Localhost is the intended face. --mesh and --admin are not a fortress.

cargo test --workspace
cargo build --release -p oursql-cli -p oursql-node
./target/release/oursql --data /tmp/sklad --intensity 0 -f examples/hello-kollektiv.nql

Three plants, flags, and backup: 13 Ops. Brigades: 15. Plan: 12.

Tiny taste

ZANIM sklad;
MANUFAKTUR TABL parts (
  id        NARODKEY,
  name      TEKST NYET PUSTO,
  qty       CELIY,
  SOLIDARITY (depot_id) IZ depots (id)
);

INZRT V parts (id, name, qty) ZNACH ('p1', 'bolt', 40)
  SAMOKRIT 'serves the inventory brigade';

OBTAN name, qty IZ parts GIVEN qty > 0 LINEUP name RATION 20;

Decadent SQL is rewritten at intensity <= 40 and may emit NOTICE 1901: bourgeois keywords tolerated at intensity 25.

Docs

Doc Subject
00 Charter Why this exists
01 Goals In and out of scope
02 Threat model Who we distrust
03 Architecture Layers, crates, data path
04 Storage Pages, WAL, encryption
05 Consensus and mesh How hosts share the store
06 NashCQL Language, keywords, grammar
07 Comrades Identity, capabilities
08 Bureaucracy The 25% stupid layer
09 Security Crypto, isolation, audit
10 Wire protocol Binary + text
11 Crate layout Rust workspace
12 Implementation plan Phased build
13 Ops Running a node
14 Errors Official complaints
15 Brigades Crate segmentation
16 Distro Multi-arch bins
Glossary Terms
Brand Dolphin, palette, files

Status

Phases 1-11 are in this tree. Stored procedures, a SQL compatibility pack, a geo pin UI, and coins are explicitly later.

License

AGPL-3.0-or-later. Improvements return to the people. See LICENSE.

About

OurSQL (NashCQL) -- a satirical Rust database you host yourself. Useful at intensity 25. Experimental; bind localhost.

Resources

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages