Repository navigation
Releases: rostamlabs/rostam
Release list
v0.7.0
Changelog
- ce36be3: chore(release): v0.7.0 — make the Go toolchain install paths work (#162) (@vahid-sohrabloo)
Install
# Go toolchain (includes WASM stored procedures when it builds with cgo)
go install github.com/rostamlabs/rostam/cmd/rostam-server@v0.7.0
# Container (always a cgo build; authentication is required)
docker run -p 127.0.0.1:8080:8080 -e ROSTAM_API_KEY=secret ghcr.io/rostamlabs/rostam:v0.7.0
# In-process local embeddings (pure Go, no ONNX Runtime): just set the model
# (REMBED_CACHE on a mounted volume persists downloaded weights across restarts)
docker run -p 127.0.0.1:8080:8080 -e ROSTAM_API_KEY=secret \
-e ROSTAM_EMBED_LOCAL=minilm-l6-v2 -e REMBED_CACHE=/models -v rostam-models:/models \
ghcr.io/rostamlabs/rostam:v0.7.0The binaries attached below are pure-Go builds: everything works except
WASM stored procedures, which return wasm: stored procedures require a cgo build. The container image always includes them. go install includes them
only when it builds with cgo — a native build (cgo defaults off when
cross-compiling) on a machine with a C compiler. In-process local embeddings
(rembed) are pure Go and built into every binary and image — no build tag,
no ONNX Runtime, nothing to install.
Verify a download against checksums.txt:
sha256sum -c checksums.txt --ignore-missing # Linux
shasum -a 256 -c checksums.txt --ignore-missing # macOSv0.7.0-beta7
Changelog
- ed6b13d: fix(cache): fail closed when a reused or recovered page header cannot be made durable (#154 part 2) (#156) (@vahid-sohrabloo)
Install
# Go toolchain (includes WASM stored procedures when it builds with cgo)
go install github.com/rostamlabs/rostam/cmd/rostam-server@v0.7.0-beta7
# Container (always a cgo build; authentication is required)
docker run -p 8080:8080 -e ROSTAM_API_KEY=secret ghcr.io/rostamlabs/rostam:v0.7.0-beta7
# In-process local embeddings (pure Go, no ONNX Runtime): just set the model
# (REMBED_CACHE on a mounted volume persists downloaded weights across restarts)
docker run -p 8080:8080 -e ROSTAM_API_KEY=secret \
-e ROSTAM_EMBED_LOCAL=minilm-l6-v2 -e REMBED_CACHE=/models -v rostam-models:/models \
ghcr.io/rostamlabs/rostam:v0.7.0-beta7The binaries attached below are pure-Go builds: everything works except
WASM stored procedures, which return wasm: stored procedures require a cgo build. The container image always includes them. go install includes them
only when it builds with cgo — a native build (cgo defaults off when
cross-compiling) on a machine with a C compiler. In-process local embeddings
(rembed) are pure Go and built into every binary and image — no build tag,
no ONNX Runtime, nothing to install.
Verify a download against checksums.txt:
sha256sum -c checksums.txt --ignore-missing # Linux
shasum -a 256 -c checksums.txt --ignore-missing # macOSv0.7.0-beta6
Changelog
- c59562c: fix(cache): v5 keyed frame integrity so recovery and eviction lose only a damaged entry (#155) (@vahid-sohrabloo)
Install
# Go toolchain (includes WASM stored procedures when it builds with cgo)
go install github.com/rostamlabs/rostam/cmd/rostam-server@v0.7.0-beta6
# Container (always a cgo build; authentication is required)
docker run -p 8080:8080 -e ROSTAM_API_KEY=secret ghcr.io/rostamlabs/rostam:v0.7.0-beta6
# In-process local embeddings (pure Go, no ONNX Runtime): just set the model
# (REMBED_CACHE on a mounted volume persists downloaded weights across restarts)
docker run -p 8080:8080 -e ROSTAM_API_KEY=secret \
-e ROSTAM_EMBED_LOCAL=minilm-l6-v2 -e REMBED_CACHE=/models -v rostam-models:/models \
ghcr.io/rostamlabs/rostam:v0.7.0-beta6The binaries attached below are pure-Go builds: everything works except
WASM stored procedures, which return wasm: stored procedures require a cgo build. The container image always includes them. go install includes them
only when it builds with cgo — a native build (cgo defaults off when
cross-compiling) on a machine with a C compiler. In-process local embeddings
(rembed) are pure Go and built into every binary and image — no build tag,
no ONNX Runtime, nothing to install.
Verify a download against checksums.txt:
sha256sum -c checksums.txt --ignore-missing # Linux
shasum -a 256 -c checksums.txt --ignore-missing # macOSv0.7.0-beta5
Changelog
- 459f74f: docs(cache): state what an in-place tear actually costs on an mmap page (#133) (@vahid-sohrabloo)
- ec99375: feat(cache): relocating eviction for ringbuf shards (#127) (@vahid-sohrabloo)
- 41ff179: feat(kv): expose how many keys a node holds (#123) (@vahid-sohrabloo)
- 3faad60: feat(kv): record search in the KV store — index definitions and kv_query (#105) (@vahid-sohrabloo)
- 35362b6: feat(objstore): add PutIfAbsent so concurrent backups publish exactly once (#142) (@vahid-sohrabloo)
- 3558bab: feat(server): expose the cache eviction knobs, and warn where they cannot act (#145) (@vahid-sohrabloo)
- 88c4ff6: fix(32-bit): refuse an unrepresentable cache budget, and gate the class in CI (#131) (@vahid-sohrabloo)
- dcf8e7f: fix(backup): reclaim staging files abandoned by a killed Put (#126) (@vahid-sohrabloo)
- 2cca69b: fix(backup): spell ':' as %3A in filesystem store names so backups work on Windows (#146) (#150) (@vahid-sohrabloo)
- 7ef479d: fix(backup): write sibling config before snapshot; hide the Put staging temp (#111) (@Adelagric)
- 6faed2c: fix(cache): drop a drained page's slots on corruption, bound entry lengths before summing (#141) (@vahid-sohrabloo)
- 96299bf: fix(cache): make the mmap per-page bounds a flush-ordered projection (#153) (@vahid-sohrabloo)
- 0fba5df: fix(cluster): halt on an unknown meta op instead of skipping it (#113) (#144) (@vahid-sohrabloo)
- 82c70f2: fix(kv): bound the bytes an operate call's returns may produce (#122) (@vahid-sohrabloo)
- 7f829cd: fix(server): admit connections under the lock Close drains behind (#132) (@vahid-sohrabloo)
- 120ac74: fix(vector): a failed restore no longer destroys the collection it replaces (#143) (@vahid-sohrabloo)
- d2eacd2: fix(vector): drop a multi-vector collection's files through DropCollection (#152) (@vahid-sohrabloo)
- cb3c511: fix(vector): drop a named-vector collection's files through DropCollection (#149) (@vahid-sohrabloo)
- 857b3c9: perf(backup): walk only the prefix's subtree in FSObjectStore.List (#125) (@Adelagric)
- bfd7b92: perf(cache): attribute the write-path latency tail to lock contention, not the rehash (#134) (@vahid-sohrabloo)
- bbfaed4: perf(cache): rescue records by reference, not position, when a page drains (#138) (@vahid-sohrabloo)
- 37c8d5c: perf(cache): write same-size updates over the copy already stored (#129) (@vahid-sohrabloo)
- 4e126aa: perf: close three allocation leaks on the KV path (#121) (@vahid-sohrabloo)
- 195bbba: refactor(cache): make an entry's occupied span explicit at every framing site (#140) (@vahid-sohrabloo)
- 50ff790: test(cache): measure region residency and read-lock cost against locked share (#137) (@vahid-sohrabloo)
- 4674f67: test(cache): the interval-overflow test did not compile for 32-bit (#130) (@vahid-sohrabloo)
Install
# Go toolchain (includes WASM stored procedures when it builds with cgo)
go install github.com/rostamlabs/rostam/cmd/rostam-server@v0.7.0-beta5
# Container (always a cgo build; authentication is required)
docker run -p 8080:8080 -e ROSTAM_API_KEY=secret ghcr.io/rostamlabs/rostam:v0.7.0-beta5
# In-process local embeddings (pure Go, no ONNX Runtime): just set the model
# (REMBED_CACHE on a mounted volume persists downloaded weights across restarts)
docker run -p 8080:8080 -e ROSTAM_API_KEY=secret \
-e ROSTAM_EMBED_LOCAL=minilm-l6-v2 -e REMBED_CACHE=/models -v rostam-models:/models \
ghcr.io/rostamlabs/rostam:v0.7.0-beta5The binaries attached below are pure-Go builds: everything works except
WASM stored procedures, which return wasm: stored procedures require a cgo build. The container image always includes them. go install includes them
only when it builds with cgo — a native build (cgo defaults off when
cross-compiling) on a machine with a C compiler. In-process local embeddings
(rembed) are pure Go and built into every binary and image — no build tag,
no ONNX Runtime, nothing to install.
Verify a download against checksums.txt:
sha256sum -c checksums.txt --ignore-missing # Linux
shasum -a 256 -c checksums.txt --ignore-missing # macOSv0.7.0-beta4
What's Changed
- perf(operate): return the result by value, not on the heap by @vahid-sohrabloo in #116
- perf(operate): pool the record working buffer by @vahid-sohrabloo in #117
- perf(wire): reserve the operate reply frame exactly by @vahid-sohrabloo in #118
- perf(ops,server): serve get and operate into the transport's buffer by @vahid-sohrabloo in #119
Full Changelog: v0.7.0-beta3...v0.7.0-beta4
v0.7.0-beta3
What's Changed
- feat(kv): expose KV cache metrics, and count live evictions separately by @vahid-sohrabloo in #114
- docs(pbisr,cluster): correct the minISR-floor enforcement comments by @Adelagric in #110
Full Changelog: v0.7.0-beta2...v0.7.0-beta3
v0.7.0-beta2
What's Changed
- perf(operate): make the operate encode/decode path allocation-free for pooling callers by @vahid-sohrabloo in #106
- docs(operate): describe the pooled decode in generic terms by @vahid-sohrabloo in #108
- perf(operate): grow insertGap's buffer by the increment, not a fixed +64 by @vahid-sohrabloo in #107
- perf(operate): read the record into a pooled buffer by @vahid-sohrabloo in #109
Full Changelog: v0.7.0-beta...v0.7.0-beta2
v0.7.0-beta
What's Changed
- fix(release): stop image-manifest silently skipping on tag push by @vahid-sohrabloo in #78
- docs: add 'Migrating from Pinecone' guide by @vahid-sohrabloo in #80
- docs: add 'Migrating from Qdrant' guide by @vahid-sohrabloo in #81
- docs(migrate/pinecone): correct $exists mapping to is_empty/is_null by @vahid-sohrabloo in #82
- docs(quickstart): lead with a 5-minute try-it path by @vahid-sohrabloo in #83
- docs: production-readiness checklist + promote PB/ISR replication out of experimental by @vahid-sohrabloo in #84
- test(pbisr): PB linearizable stale-primary-read e2e (closes last P6 lane) by @vahid-sohrabloo in #86
- fix(meta_fsm): improve concurrency handling for metaApplyCatalogGate by @kunaldevxxx in #79
- fix(vector): durable acked deletes + fail-closed WAL on fsync failure by @vahid-sohrabloo in #87
- server: add -online-compaction flag (expose EnableOnlineCompaction) by @vahid-sohrabloo in #89
- feat(kv): operate v2 — atomic multi-field update with schema and dynamic modes by @vahid-sohrabloo in #97
- fix(cache): add tests for handling corrupt page tails and improve rec… by @kunaldevxxx in #91
- fix(vector): make checkpoint publishes crash-durable (dir fsync after rename) by @Adelagric in #93
- fix(raft/logstore): fail-closed poison latch on fsync failure by @Adelagric in #95
- test(ops): skip the operate allocation-budget tests under -race by @vahid-sohrabloo in #99
- test: fuzz the untrusted network + WAL-recovery decoders by @Adelagric in #98
- fix(raft/logstore): reject trailing bytes in decodeInto by @Adelagric in #100
- test(shard/pbisr): seed the group-count cap; fix stale comments by @Adelagric in #101
- feat: record search in vector payloads (operate records as a payload kind, filter paths, auto-index) by @vahid-sohrabloo in #102
- feat: vector_operate — atomic operate op-lists on a vector point's record by @vahid-sohrabloo in #103
New Contributors
- @Adelagric made their first contribution in #93
Full Changelog: v0.6.0...v0.7.0-beta
v0.6.0
Changelog
- d4a7c92: Merge branch 'main' into fix/meta-idempotency-check-replication-factor (@kunaldevxxx)
- b6bd744: Merge pull request #65 from Keivan-S/feat/windows-slab-reservations (@vahid-sohrabloo)
- 316c111: Merge pull request #66 from rostamlabs/feat/dashboard-ui (@vahid-sohrabloo)
- 632fe54: Merge pull request #67 from rostamlabs/feat/kv-flush-op (@vahid-sohrabloo)
- be06294: Merge pull request #68 from Keivan-S/fix/reservation-release-order (@vahid-sohrabloo)
- 561566f: Merge pull request #73 from kunaldevxxx/fix/meta-fsm-shard-former-deep-copy (@vahid-sohrabloo)
- 0d87619: Merge pull request #74 from kunaldevxxx/fix/node-close-wait-background-goroutines (@vahid-sohrabloo)
- c4040e1: Merge pull request #75 from kunaldevxxx/fix/meta-idempotency-check-replication-factor (@vahid-sohrabloo)
- 6d63391: Merge pull request #76 from rostamlabs/feat/kv-online-compaction (@vahid-sohrabloo)
- e06238e: Merge pull request #77 from rostamlabs/chore/release-v0.6.0 (@vahid-sohrabloo)
- 17d91a1: chore(release): cut v0.6.0 (@vahid-sohrabloo)
- 75643dd: docs(vector): document the four functions this branch touched (@Keivan-S)
- 3e7c0ea: feat(dashboard): embedded web UI for vector + KV management and monitoring (@vahid-sohrabloo)
- 9b57c20: feat(kv): global flush op — O(shards) keyspace wipe, replicated (@vahid-sohrabloo)
- c266a63: feat(kv): online compaction — reclaim dead space in replicated shards without losing zero-copy reads (@vahid-sohrabloo)
- 210c17e: feat(meta_fsm): add handling for ShardFormer in State method (@kunaldevxxx)
- 143d019: feat(vector): reserve and commit slabs in place on Windows (@Keivan-S)
- 0fd8db8: fix(dashboard): address review — CI lint/changelog, release-ref guard, client-safe single-node topology, KV race + a11y + poll fixes (@vahid-sohrabloo)
- 60d667c: fix(kv): address PR #76 re-review round 2 — O(1) Stats gauge, deterministic stall tests (@vahid-sohrabloo)
- 7753478: fix(kv): address PR #76 re-review round 3 — deterministic cache test, loud SetReadBuffer, clock-jump guard (@vahid-sohrabloo)
- d5c497a: fix(kv): address PR #76 re-review round 4 — atomic reclaimable snapshot (no torn/regressed cache) (@vahid-sohrabloo)
- 236684b: fix(kv): address PR #76 re-review — gate sweep scan, normalize timeout, doc + test fidelity (@vahid-sohrabloo)
- 09ab6fb: fix(kv): address PR #76 review — opt-in online compaction, inert fix, bounded pipeline copy (@vahid-sohrabloo)
- d705382: fix(kv): flush durability — fail-closed sidecar, fatal apply error, ambiguous-safe fan-out (review r2) (@vahid-sohrabloo)
- b3feacf: fix(kv): harden flush durability + mark non-replayable (review) (@vahid-sohrabloo)
- ab724e2: fix(meta): add ReplicationFactorSet flag to enhance idempotency check (@kunaldevxxx)
- 01a610e: fix(meta): add regression test for non-idempotent ReplicationFactor changes in ApplySetMembersIfLeader (@kunaldevxxx)
- cd4e994: fix(meta): enhance idempotency check for replication factor changes (@kunaldevxxx)
- 0be6a72: fix(meta): improve idempotency check for ReplicationFactor changes and add regression test (@kunaldevxxx)
- e1638a2: fix(meta): refactor TestMetaRaft to use newTestMetaRaft for setup and improve idempotency checks (@kunaldevxxx)
- 649b037: fix(meta): remove unnecessary blank lines in test files and improve code readability (@kunaldevxxx)
- 6b7c695: fix(meta): update idempotency check and store replication factor in state (@kunaldevxxx)
- 7afa716: fix(node): add wait groups for background goroutines in Close() method (@kunaldevxxx)
- c1d6ed5: fix(node): optimize goroutine parameters in newMultiNode function (@kunaldevxxx)
- 88b3982: fix(vector): address review — release ordering, codes coverage, stale contract (@Keivan-S)
- fbe51e6: fix(vector): clear a reservation's state only after the unmap succeeds (@Keivan-S)
- 9e9c7cc: harden(kv): warn on under-sized alias fence for direct embedders + widen pipeline test margin (@vahid-sohrabloo)
- c204a2a: style(cache): gofmt flush.go (fix golangci-lint) (@vahid-sohrabloo)
- 6dc3e86: test(meta_fsm): add unit test for deep copy of ShardFormer state (@kunaldevxxx)
Install
# Go toolchain (includes WASM stored procedures when it builds with cgo)
go install github.com/rostamlabs/rostam/cmd/rostam-server@v0.6.0
# Container (always a cgo build; authentication is required)
docker run -p 8080:8080 -e ROSTAM_API_KEY=secret ghcr.io/rostamlabs/rostam:v0.6.0
# In-process local embeddings (pure Go, no ONNX Runtime): just set the model
# (REMBED_CACHE on a mounted volume persists downloaded weights across restarts)
docker run -p 8080:8080 -e ROSTAM_API_KEY=secret \
-e ROSTAM_EMBED_LOCAL=minilm-l6-v2 -e REMBED_CACHE=/models -v rostam-models:/models \
ghcr.io/rostamlabs/rostam:v0.6.0The binaries attached below are pure-Go builds: everything works except
WASM stored procedures, which return wasm: stored procedures require a cgo build. The container image always includes them. go install includes them
only when it builds with cgo — a native build (cgo defaults off when
cross-compiling) on a machine with a C compiler. In-process local embeddings
(rembed) are pure Go and built into every binary and image — no build tag,
no ONNX Runtime, nothing to install.
Verify a download against checksums.txt:
sha256sum -c checksums.txt --ignore-missing # Linux
shasum -a 256 -c checksums.txt --ignore-missing # macOSv0.5.0
Changelog
- 57a0348: Merge pull request #56 from Keivan-S/feat/windows-mmap-persistence (@vahid-sohrabloo)
- 3c5845f: Merge pull request #57 from rostamlabs/feat/harden-386-decoders (@vahid-sohrabloo)
- 7c11805: Merge pull request #60 from rostamlabs/feat/kv-cas (@vahid-sohrabloo)
- e2deb30: Merge pull request #61 from rostamlabs/feat/mmap-grow-restore (@vahid-sohrabloo)
- d8fe20d: Merge pull request #62 from rostamlabs/feat/kv-roadmap-ops (@vahid-sohrabloo)
- 4766120: Merge pull request #63 from rostamlabs/chore/release-v0.5.0 (@vahid-sohrabloo)
- ad46711: Merge remote-tracking branch 'origin/main' into wip-56-merge (@vahid-sohrabloo)
- 232af84: chore(release): cut v0.5.0 (server) and rostam-client 0.4.0 (@vahid-sohrabloo)
- 84f0935: ci: run the storage tests on windows/amd64 (@Keivan-S)
- 3b5c316: docs(changelog): add entry for atomic conditional KV writes (@vahid-sohrabloo)
- 4012126: feat(cache): map shard files on Windows (@Keivan-S)
- 9178266: feat(kv): add 8 roadmap ops — mget, incr_ex, caex, getdel, getset, persist, ttl, exists (@vahid-sohrabloo)
- bad7bf1: feat(kv): atomic conditional writes — set_nx, cas, compare-and-delete (@vahid-sohrabloo)
- ef9e4e7: feat(vector): map slab files on Windows (@Keivan-S)
- 58321a7: feat(vector): restore a valid mapping on a failed mmap grow instead of bricking the index (@vahid-sohrabloo)
- 1f22e57: fix(client): don't replay conditional writes across ambiguous transport failures (@vahid-sohrabloo)
- 3564314: fix(kv): address CodeRabbit review on the roadmap ops (@vahid-sohrabloo)
- 5f5e287: fix(vector): address review — unmap-failure ownership, test cleanup, double-failure coverage (@vahid-sohrabloo)
- cec127d: fix(vector): clear mmap-aliased fields when a grow fails (@vahid-sohrabloo)
- b571835: fix(wire): eliminate residual 32-bit overflow in decoder bounds checks (@vahid-sohrabloo)
- 40048ce: fix(wire): harden DecodePutArgs against 32-bit overflow + address release review (@vahid-sohrabloo)
- 03c9024: fix(wire): reject hostile lengths in 46 decoders that panicked on 32-bit (@vahid-sohrabloo)
- bb7e247: harden(vector): poisoned terminal state so a failed mmap grow can't panic or corrupt (@vahid-sohrabloo)
- 9d83cbe: test(ops): de-flake TestBuiltinSetNXReacquiresAfterExpiry on the 386 lane (@vahid-sohrabloo)
- 30ad3ec: test(vector): exercise the Windows vector mmap round-trip in CI (@vahid-sohrabloo)
Install
# Go toolchain (includes WASM stored procedures when it builds with cgo)
go install github.com/rostamlabs/rostam/cmd/rostam-server@v0.5.0
# Container (always a cgo build; authentication is required)
docker run -p 8080:8080 -e ROSTAM_API_KEY=secret ghcr.io/rostamlabs/rostam:v0.5.0
# In-process local embeddings (pure Go, no ONNX Runtime): just set the model
# (REMBED_CACHE on a mounted volume persists downloaded weights across restarts)
docker run -p 8080:8080 -e ROSTAM_API_KEY=secret \
-e ROSTAM_EMBED_LOCAL=minilm-l6-v2 -e REMBED_CACHE=/models -v rostam-models:/models \
ghcr.io/rostamlabs/rostam:v0.5.0The binaries attached below are pure-Go builds: everything works except
WASM stored procedures, which return wasm: stored procedures require a cgo build. The container image always includes them. go install includes them
only when it builds with cgo — a native build (cgo defaults off when
cross-compiling) on a machine with a C compiler. In-process local embeddings
(rembed) are pure Go and built into every binary and image — no build tag,
no ONNX Runtime, nothing to install.
Verify a download against checksums.txt:
sha256sum -c checksums.txt --ignore-missing # Linux
shasum -a 256 -c checksums.txt --ignore-missing # macOS