This is the core Go component of the DataSketches library. It contains some of the sketching algorithms and can be accessed directly from user applications.
This project is currently under development. Breaking changes may occur before a stable release.
Note that we have a parallel core component for C++, Java and Python implementations of the same sketch algorithms, datasketches-cpp and datasketches-java.
Please visit the main DataSketches website for more information.
If you are interested in making contributions to this site please see our Community page for how to contact us.
| Type | Implementation | Status |
|---|---|---|
| Cardinality | ||
| CpcSketch | ✅ | |
| HllSketch | ✅ | |
| ThetaSketch | ✅ | |
| TupleSketch |
✅ | |
| Quantiles | ||
| CormodeDoublesSketch | ❌ | |
| CormodeItemsSketch | ❌ | |
| KllDoublesSketch | ✅ | |
| KllFloatsSketch | ||
| KllSketch | ✅ | |
| ReqFloatsSketch | 🚧 | |
| TDigestDouble | ✅ | |
| Frequencies | ️ | |
| FreqLongsSketch | ✅ | |
| FreqItemsSketch | ✅ | |
| CountMinSketch | ✅ | |
| Sampling | ||
| ReservoirLongsSketch | ✅* | |
| ReserviorItemsSketch | ✅* | |
| VarOptItemsSketch | ✅* | |
| Membership | ||
| BloomFilter | ✅ | |
| Density | ||
| DensitySketch | ❌ |
| Type | Interface Name | Status |
|---|---|---|
| Cardinality/FM85 | UniqueCountMap | ❌ |
| Cardinality/Tuple | ||
| FdtSketch | ❌ | |
| ArrayOfDoublesSketch | ✅ | |
| DoubleSketch | ❌ | |
| IntegerSketch | ❌ | |
| ArrayOfStringsSketch | ||
| EngagementTest3 | ❌ |
✅ = Released in v0.1.0
✅* = Released in v0.1.0, but partially implemented and unstable (API may change)
❌ = Not yet implemented
🚧 = In progress
This code requires Go 1.24
Test can be run using go test command
go test ./...
A Dockerfile is also provided with the necessary env to build and test the project.
./build/Dockerfile
./build/run-docker-test.sh