Claims ledger

Every sentence this site asserts, with its source. This is the same file the build's checker reads: a claim whose evidence stops resolving fails the build, and a claim with no evidence cannot be added at all.

How to read this

  • Built — true of the code in the commit this site was built from.
  • Planned — not built. These appear on the roadmap and nowhere else; the build fails if one reaches a page in the present tense.
  • Off by default — the feature exists but ships disabled, and the claim may not be rendered without saying so.
  • But: — the caveat. It is part of the claim rather than a footnote, and the two are one component.

Claims that are written but blocked — a measurement not yet taken, a feature not yet built — are in the manifest with their blocker and are deliberately absent from this page. They render nowhere until the blocker closes.

Built

One bucket per entity, on the engine that fits it: a queue for each user, a stack for each post, a priority queue for each job list.

Evidence: cli/store_types.go:storeTypes· cli/handlers.go:handleCreateBucket

hoardDB is a distributed database: six store engines on a consistent hash ring, with TLS and authentication on from the first start.

Evidence: cli/store_types.go:storeTypes· ring/ring.go:Owner· config/config.go:DefaultConfig· TestNoArgumentStartPathInTempDir

The database is one binary. There is no sidecar and no separate indexer process.

The CLI is a second binary, and it is a client rather than a component of the database.

Evidence: Makefile:build-server· cmd/server/main.go:main

hoardDB-server starts with no arguments and no configuration file.

Evidence: config/config.go:DefaultConfig· TestNoArgumentStartPathInTempDir

On first start it generates a self-signed TLS keypair and serves over TLS.

The certificate is self-signed: a first client connection trusts it on first use and records its fingerprint. It is not a CA-issued certificate.

Evidence: transport/transport.go:LoadOrCreateKeys· transport/transport.go:GenerateEd25519Keys

Authentication is always required. There is no flag that turns it off.

The CLI's -insecure flag is a client-side TLS verification bypass. It is not a server authentication switch, and there is no server-side equivalent.

Evidence: server/auth.go:NewCredential· server/authz.go:authorize

A root credential is generated on the first start and written to ./data/root.password at mode 0600.

Evidence: server/authkey.go:LoadOrCreateRootPassword· proof/five-minute-path.out

Passwords are hashed with Argon2id.

Evidence: server/auth.go:NewCredential

Six store engines: hash, b-tree, FIFO, LIFO, heap and blob. The engine is chosen when the bucket is created.

An engine cannot be changed after the bucket is created, and indexes are declared at creation time.

Evidence: cli/store_types.go:storeTypes· cli/unsupported_features.go:errAlterBucket

Placement is a consistent hash ring keyed by xxHash64. Membership is declarative — there are no elections and no arbiters.

No elections is the same fact as no automatic promotion: losing a node needs an operator.

Evidence: ring/ring.go:Owner· ring/ring.go:AddNode· ring/hasher.go:Sum64

Replication is in the binary and free: replication factor, write-ahead log, and a write concern of one, majority or all.

hoardDB never promotes or removes a node automatically. Losing a node needs an operator. Replication is off until a replication factor above one is configured.

Off by default Evidence: config/config.go:ReplicationFactor· storage/wal.go:WAL· server/write_concern.go:WriteConcernLevel· docs/user/limitations.md#cluster

Audit logging is in the server and free.

It is off by default — turn it on in the configuration.

Off by default Evidence: server/audit.go:AuditLogger· config/config.go:AuditConfig

Users, roles and per-database grants are persisted and enforced.

A role change applies at the next authentication, not to a connection that is already open.

Evidence: server/authz.go:roleSatisfies· server/users.go:LoadUsersConfig

dump and restore write ordinary BSON that other tools can read.

Blob payloads and user accounts are not included in a dump.

Evidence: cli/dump.go:RunDumpCommand· cli/dump.go:RunRestoreCommand

hoardDB is not MongoDB wire-compatible and does not aim to be. HQL is inspired by MongoDB's syntax; it is a different language.

Evidence: cli/parser.go:ParseCommand

The documentation on this site is the documentation in the repository. There is no second copy.

Evidence: website/scripts/prepare-docs.sh:stage_page

Free to self-host, including commercially and in production.

Evidence: LICENSE:Additional Use Grant

The one thing the licence does not grant is offering hoardDB itself as a database service to third parties. For that, talk to Boeger IT Sh.p.K, Tirana, Albania.

Evidence: LICENSE

Client libraries live under clients/ and are Apache-2.0, so a driver you link into your own program carries no usage restriction.

This is a statement about the licence of a directory. clients/ holds a LICENSE and nothing else today; no client library has shipped.

Evidence: clients/LICENSE:Apache License

The Business Source License is not an Open Source licence, and it says so itself. The Licensed Work converts to the Apache License 2.0 on the Change Date, or on the fourth anniversary of a version's first public distribution, whichever comes first.

Source-available is not the same as open source. Developers check this, so the site states it rather than leaving it to be discovered.

Evidence: LICENSE:is not an Open· LICENSE:whichever comes first

Each engine is a different way to read: hash by key, b-tree in key order, FIFO oldest first, LIFO newest first, heap by priority, blob as bytes.

Evidence: cli/store_types.go:storeTypes· store/heap.go:PopItem

The unit is the small bucket: one per user, one per post, one per job list. The load is in how many buckets there are, not in how large any one of them is.

Each bucket opens its own storage instance, and how many buckets one node can hold has not been measured. No figure appears on this site until it has.

Evidence: AGENTS.md:The unit is the small bucket· server/service.go:createBucketLocked

Planned

Listed here with the same evidence discipline. Every one is in the future tense, on this page and on the roadmap only.

Encryption at rest is not built. It is planned in four stages, and none of them has landed.

Until it lands, treat the data directory as plaintext on disk. The users.json file is sealed separately and that is not encryption at rest for your data.

Evidence: docs/user/limitations.md

Client libraries are planned for after 1.0. None has shipped, and this site carries no code sample in any language other than HQL.

Evidence: clients/LICENSE:Apache License

Loading another database's BSON dump in one command is not built. hoardDB's own dump and restore cover backup and recovery of hoardDB buckets, and migrating off MongoDB is a different verb that does not exist yet. The plain-file import is committed before 1.0; analysing a dump to recommend store types comes later.

Evidence: docs/user/limitations.md

A published benchmark is planned. There is no head-to-head measurement in the repository today, so this site publishes no performance number at all.

Evidence: docs/user/limitations.md

Coming soon! We'll publish the source when hoardDB hits v1.0.

The repository is not public yet: the history is being prepared for publication first, so until it is there is nothing to clone.

Evidence: docs/user/limitations.md