Releases: srjn45/FileDBv2
Releases · srjn45/FileDBv2
Release list
v1.0.0
Changelog
- 84a3e3f chore(release): v1.0.0 API freeze (#75)
- f74d70e docs(changelog): cut v0.8.0 release section (#72)
- 3a02410 docs(changelog): cut v1.0.0 release section (#76)
- 9053c53 feat(engine,server): per-tenant quotas & limits [S4] (#74)
- 564e5f9 feat(server): audit log for mutating/admin RPCs and auth failures [S2] (#71)
- 938c900 feat(server): mutual TLS (client-cert auth) [S1] (#70)
- fbf6746 feat(server): per-collection ACLs on scoped keys [S3] (#73)
v0.8.0
Changelog
- 816f29a feat(engine,server): leader→follower log-shipping replication (R1) (#65)
- dd13db3 feat(engine,server): manual failover & role management (R3) (#67)
- 9543ea2 feat(server): read replicas & follower reads (R2) (#66)
- 304cf52 fix(engine): make compaction swap crash-atomic and self-heal dangling indexes (#69)
v0.7.0
Changelog
- 19c0f60 docs(changelog): cut v0.7.0 release section (#64)
- a04c0e3 docs(clients): record SDK parity sweep at v0.7.0 wire surface (#63)
- 0f75e1a feat(clients/csharp): parity with v0.7.0 wire API (N1–N4) (#61)
- 12ff32b feat(clients/java): parity with v0.7.0 wire API (N1–N4) (#60)
- a49f644 feat(clients/js): parity with v0.7.0 wire API (N1–N4) (#58)
- 0fe750d feat(clients/php): parity with v0.7.0 wire API (N1–N4) (#57)
- 5be3282 feat(clients/python): parity with v0.7.0 wire API (N1–N4) (#56)
- 505c3eb feat(clients/ruby): parity with v0.7.0 wire API (N1–N4) (#62)
- 872f09d feat(clients/rust): parity with v0.7.0 wire API (N1–N4) (#59)
- 566e51f feat(engine): slow-query log & scan stats (O5) (#51)
- 2fe074d feat(server): OpenTelemetry tracing (O4) (#50)
- e728b65 feat(server): aggregations — count / group-by / numeric (N4) (#55)
- e75eeb0 feat(server): field projection on reads (N2) (#53)
- 53aaefa feat(server): keyed CRUD, Upsert, CAS & Rev over the wire (N1) (#52)
- 7c4b687 feat(server): keyset pagination + multi-field order_by (N3) (#54)
- 06a5fcf feat(server): request backpressure & rate limiting (O3) (#49)
- c735cc7 feat(server): structured logging + health/readiness (O1, O2) (#48)
v0.3.0
Changelog
- c222531 chore(release): prepare v0.3.0 — TTL over the wire + 7-SDK parity (#46)
- 9abcca5 feat(client-csharp): reach API parity — compact, snapshot, per-record TTL (#45)
- 36896d1 feat(client-java): reach API parity — compact, snapshot, per-record TTL (#42)
- 9be1d93 feat(client-js): repair the client and reach API parity (#40)
- a96a33f feat(client-php): reach API parity — compact, snapshot, per-record TTL (#41)
- d791c6a feat(client-python): surface Compact, Snapshot, and TTL params (#39)
- b325183 feat(client-ruby): reach API parity — compact, snapshot, per-record TTL (#43)
- c10f99f feat(client-rust): reach API parity — compact, snapshot, per-record TTL (#44)
- 77a1cbd feat(ttl): surface per-record and per-collection TTL over the wire (F1) (#38)
v0.2.1
v0.2.0
Changelog
- 24d1ba2 ci(engine): add dependency-hygiene gate for embeddable engine (EMB-3) (#23)
- 2c4d417 ci: pin goreleaser-action to ~> v2 instead of latest (#13)
- bc2893e docs(engine): document in-process Watch for embedded consumers (OPS-2) (#22)
- c464d49 feat(engine): NDJSON bulk-load helper + migration docs (OPS-3) (#33)
- c61e587 feat(engine): TTL / expiring records (F1) (#32)
- 50e435f feat(engine): caller-supplied string primary keys (KEY-1) (#26)
- 90c5f92 feat(engine): count/exists helpers (QRY-3) (#30)
- 6f051b7 feat(engine): durability hardening — dir fsync, atomic meta, rotation errors (#15)
- 0deb0be feat(engine): key-based upsert (KEY-4) (#29)
- e3f4aca feat(engine): on-demand compaction via Compact RPC + CLI (F3) (#34)
- 5fc9ecb feat(engine): per-record rev + compare-and-swap (KEY-3) (#28)
- 141ac8a feat(engine): promote internal/engine, store, query to public packages (EMB-1) (#19)
- 520dff7 feat(engine): range-capable secondary indexes (Q3) (#27)
- f2d1d1a feat(engine): reap idle transactions via --tx-timeout (#16)
- 8786eaf feat(engine): signal Watch overflow instead of silently dropping events (#17)
- 05b7c95 feat(engine): streaming, push-down Find with context cancellation (Q1, Q4) (#20)
- 76c9308 feat(engine): unique secondary index constraint (KEY-2) (#25)
- 543c32b feat(filedb): embedded façade with durability defaults (EMB-2, OPS-1) (#31)
- 097ac12 feat(query): unify order_by with filter comparison — typed & directional (Q2) (#21)
- 4857021 feat(store): per-record CRC32C checksums to detect segment bit-rot (#D3) (#18)
v0.1.0
FileDB v0.1.0 — first release 🎉
A lightweight, append-only, file-based document database. Single binary, zero dependencies, human-readable NDJSON storage, served over gRPC and REST.
Highlights
- Append-only NDJSON storage — every insert/update/delete is a new line; inspect, back up, or migrate with any text editor or Unix tool
- Background compaction — a goroutine per collection merges and deduplicates sealed segments
- In-memory id index — O(1) lookup by id, persisted with a checksum for fast restarts
- Secondary indexes — per-field inverted indexes for O(1) equality lookups, automatically maintained and persisted
- Configurable durability —
none(OS flush),always(fsync per write), orinterval(fsync on a timer) - Transactions — optimistic multi-operation
BeginTx/CommitTx/RollbackTx - gRPC + REST — dual API from one binary; CLI prefers the Unix socket when local
- Optional TLS, YAML config (
--config), and Prometheus metrics - OpenAPI spec + official client SDKs for 7 languages (Python, JS/TS, PHP, Java, Ruby, Rust, C#/.NET)
- Web admin UI (React + Vite)
Install
Download a prebuilt archive below, or pull the Docker image:
docker pull ghcr.io/srjn45/filedbv2:v0.1.0
docker run -p 5433:5433 -p 8080:8080 -e FILEDB_API_KEY=dev-key \
ghcr.io/srjn45/filedbv2:v0.1.0 serve --data /dataPrebuilt binaries are available for linux / darwin / windows × amd64 / arm64. Verify downloads against checksums.txt.
See Getting Started and the client SDKs.