NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Go modules · #1766 by repository stars
Last release 1 months ago
06 Sep 2026
Release timing varies
gaps range from 2 weeks to 8 months
Nearly every release is documented
notes for 7 of 7 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
53 releases · first in 2023
Nothing published for this version
Nothing published for this version
Nothing published for this version
One column per month.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
But many other additions, improvements and important fixes made it into this release as well, all without breaking changes:
Highlights in this release are the possibility to export/import the DB to/from object storage like S3, a way to run a negative query and either filter or subtract the results from the regular query results, and the license change from AGPL to MPL. But many other additions, improvements and important fixes made it into this release as well, all without breaking changes:
DB.ExportToWriter() to allow users to pass any io.Writer implementation for the DB export, not just a file. This allows for example to export the DB to AWS S3 or compatible services (like Ceph, MinIO etc.). (PR #71)DB.ImportFromReader() to allow users to pass any io.ReadSeeker implementation for the DB import, not just a file. This allows for example to import the DB from AWS S3 or compatible services (like Ceph, MinIO etc.). (PR #72)DB.QueryWithOptions method and related options structs and constants for future extensibility without breaking the parameter list of the query method!Collection.GetByID() to get a document for a known ID (PR #97, for issue #95)golangci-lint in CI to its latest version (PR #99)Collection.QueryEmbedding() call assumed/expected the query embedding from the parameter to be normalized already, but it wasn't documented and it's also inconvenient for users who use an embedding model/API that doesn't return normalized embeddings. Now we check whether the embedding is normalized and if it's not then we normalize it. (PR #77)
chromem-go only does cosine similarity, and document embeddings are already being normalized, so the query embedding has to be normalized as well. In the future we might offer other distance functions or allow to inject your own and make the normalization optional)golangci-lint warnings (PR #82 by @erikdubbelboer)Full Changelog: v0.6.0...v0.7.0
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Highlights in this release are an extended interface, experimental WebAssembly bindings, and the option to use a custom Ollama URL. But also the fact
Highlights in this release are an extended interface, experimental WebAssembly bindings, and the option to use a custom Ollama URL. But also the fact that three people contributed to this release! Thank you so much! 🙇♂️
Collection.Delete() to delete documents from a collection (PR #63 by @iwilltry42)wasm) and example (PR #69)nomic-embed-text model in RAG-Wikipedia-Ollama example (PR #49, #65)
NewEmbeddingFuncOllama now requires a second parameter for the base URL. But it can be empty to use the default which was also used in the past.Full Changelog: v0.5.0...v0.6.0
Nothing published for this version
Nothing published for this version
Highlights in this release are query performance improvements (5x faster, 98% fewer memory allocations), export/import of the entire DB to/from a sing
Highlights in this release are query performance improvements (5x faster, 98% fewer memory allocations), export/import of the entire DB to/from a single file with optional gzip-compression and AES-GCM encryption, optional gzip-compression for the regular persistence, a new code example for semantic search across 5,000 arXiv papers, and an embedding func for Cohere.
Collection.QueryEmbedding() method for when you already have the embedding of your query (PR #52)NewPersistentDB() which writes a file for each added collection and document) (PR #59)main.go file (PR #43)goos: linux
goarch: amd64
pkg: github.com/philippgille/chromem-go
cpu: 11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz
│ before │ after │
│ sec/op │ sec/op vs base │
Collection_Query_NoContent_100-8 413.69µ ± 4% 90.79µ ± 2% -78.05% (p=0.002 n=6)
Collection_Query_NoContent_1000-8 2759.4µ ± 0% 518.8µ ± 1% -81.20% (p=0.002 n=6)
Collection_Query_NoContent_5000-8 12.980m ± 1% 2.144m ± 1% -83.49% (p=0.002 n=6)
Collection_Query_NoContent_25000-8 66.559m ± 1% 9.947m ± 2% -85.06% (p=0.002 n=6)
Collection_Query_NoContent_100000-8 282.41m ± 3% 39.75m ± 1% -85.92% (p=0.002 n=6)
Collection_Query_100-8 416.75µ ± 2% 90.99µ ± 1% -78.17% (p=0.002 n=6)
Collection_Query_1000-8 2792.8µ ± 23% 595.2µ ± 13% -78.69% (p=0.002 n=6)
Collection_Query_5000-8 15.643m ± 1% 2.556m ± 1% -83.66% (p=0.002 n=6)
Collection_Query_25000-8 78.29m ± 1% 11.66m ± 1% -85.11% (p=0.002 n=6)
Collection_Query_100000-8 338.54m ± 5% 39.70m ± 12% -88.27% (p=0.002 n=6)
geomean 12.97m 2.192m -83.10%
│ before │ after │
│ B/op │ B/op vs base │
Collection_Query_NoContent_100-8 1211.007Ki ± 0% 5.030Ki ± 0% -99.58% (p=0.002 n=6)
Collection_Query_NoContent_1000-8 12082.16Ki ± 0% 13.24Ki ± 0% -99.89% (p=0.002 n=6)
Collection_Query_NoContent_5000-8 60394.23Ki ± 0% 45.99Ki ± 0% -99.92% (p=0.002 n=6)
Collection_Query_NoContent_25000-8 301962.1Ki ± 0% 206.7Ki ± 0% -99.93% (p=0.002 n=6)
Collection_Query_NoContent_100000-8 1207818.1Ki ± 0% 791.4Ki ± 0% -99.93% (p=0.002 n=6)
Collection_Query_100-8 1211.006Ki ± 0% 5.033Ki ± 0% -99.58% (p=0.002 n=6)
Collection_Query_1000-8 12082.11Ki ± 0% 13.25Ki ± 0% -99.89% (p=0.002 n=6)
Collection_Query_5000-8 60394.10Ki ± 0% 46.04Ki ± 0% -99.92% (p=0.002 n=6)
Collection_Query_25000-8 301962.1Ki ± 0% 206.8Ki ± 0% -99.93% (p=0.002 n=6)
Collection_Query_100000-8 1207818.1Ki ± 0% 791.4Ki ± 0% -99.93% (p=0.002 n=6)
geomean 49.13Mi 54.97Ki -99.89%
│ before │ after │
│ allocs/op │ allocs/op vs base │
Collection_Query_NoContent_100-8 238.00 ± 0% 94.00 ± 1% -60.50% (p=0.002 n=6)
Collection_Query_NoContent_1000-8 2038.5 ± 0% 140.5 ± 0% -93.11% (p=0.002 n=6)
Collection_Query_NoContent_5000-8 10039.0 ± 0% 172.0 ± 1% -98.29% (p=0.002 n=6)
Collection_Query_NoContent_25000-8 50038.0 ± 0% 204.0 ± 1% -99.59% (p=0.002 n=6)
Collection_Query_NoContent_100000-8 200038.0 ± 0% 232.0 ± 3% -99.88% (p=0.002 n=6)
Collection_Query_100-8 238.00 ± 0% 94.50 ± 1% -60.29% (p=0.002 n=6)
Collection_Query_1000-8 2038.0 ± 0% 141.0 ± 1% -93.08% (p=0.002 n=6)
Collection_Query_5000-8 10038.0 ± 0% 174.5 ± 2% -98.26% (p=0.002 n=6)
Collection_Query_25000-8 50038.0 ± 0% 205.5 ± 2% -99.59% (p=0.002 n=6)
Collection_Query_100000-8 200038.5 ± 0% 233.0 ± 1% -99.88% (p=0.002 n=6)
geomean 8.661k 161.4 -98.14%
NewPersistentDB() path handling (PR #56)Nothing published for this version
Nothing published for this version
Highlights in this release are optional persistence, an extended interface, support for creating embeddings with Ollama , the exporting of the Documen
Highlights in this release are optional persistence, an extended interface, support for creating embeddings with Ollama, the exporting of the Document struct, and more Go-idiomatic methods to add documents to collections.
DB.ListCollections() (PR #12)DB.GetCollection() (PR #13 + #19)DB.DeleteCollection() (PR #14)DB.Reset() (PR #15)DB.GetOrCreateCollection() (PR #22)Collection.Count() (PR #27)Document struct, NewDocument() function, Collection.AddDocument() and Collection.AddDocuments() methods (PR #34)
Collection.Add()Collection.Metadata (PR #16)
chromem-go for example ranges over it during a Collection.Query() call.chromem-go for example ranges over it.ErrNotExist errors (PR #29)Collection.AddConcurrently() (PR #35)Collection.Query() method (PR #36)GetCollection requires a new parameter of type EmbeddingFunc, in order to set the correct func when using a DB with persistence and it just loaded the collections and documents from storage. (PR #25)Collection.Metadata is not exported anymoreResult.Document field was renamed to Result.Content, to avoid confusion with the now exported Document structNothing published for this version
Nothing published for this version
Nothing published for this version
Added support for more OpenAI embedding models (PR #6 )
Client to DB to better indicate that the database is embedded and there's no client-server separation (PR #3)EmbeddingFunc constructors to follow best practice (PR #9)nResults arg < 0 (PR #5)v0.x.y.Nothing published for this version
Added GitHub Actions config ( commit )
CHANGELOG.md (commit)Collection.AddConcurrently to add embeddings concurrently (commit)Client (commit)Query method (commit)Nothing published for this version
Nothing published for this version
Initial release with a minimal Chroma-like interface and a working retrieval augmented generation (RAG) example.
Initial release with a minimal Chroma-like interface and a working retrieval augmented generation (RAG) example.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →