Apache datasketches

Clone this repo:
  1. c558cc2 Merge pull request #161 from proost/perf-remove-alloc-in-cm-sketch by Hyeonho Kim · 2 days ago main
  2. 730c0ca Merge pull request #162 from proost/test-generating-go-snapshots-command by Hyeonho Kim · 5 days ago
  3. 11c7905 test: add go snapshots by proost · 5 days ago
  4. e9c7273 test: add generating go commands by proost · 5 days ago
  5. b28c8b0 Merge branch 'main' of github.com:apache/datasketches-go into perf-remove-alloc-in-cm-sketch by proost · 7 days ago

Go Go Report Card Release GoDoc License Coverage Status

Apache® DataSketches™ Core Go Library Component

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 parallel core library components for C++, Java, Python, and Rust implementations of many of the same sketch algorithms:

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 information on how to contact us.

Major Sketches

TypeImplementationStatus
Cardinality
CpcSketch
HllSketch
ThetaSketch
TupleSketch
Quantiles
CormodeDoublesSketch
CormodeItemsSketch
KllDoublesSketch
KllFloatsSketch
KllSketch
ReqFloatsSketch⚠️
TDigestDouble
Frequencies
FreqLongsSketch
FreqItemsSketch
CountMinSketch
Sampling
ReservoirLongsSketch
ReserviorItemsSketch
VarOptItemsSketch
EbppsSketch
Membership
BloomFilter
Density
DensitySketch

Specialty Sketches

TypeInterface NameStatus
Cardinality/FM85UniqueCountMap
Cardinality/Tuple
FdtSketch
ArrayOfDoublesSketch
DoubleSketch
IntegerSketch
ArrayOfStringsSketch
EngagementTest3

✅ = Released in v0.2.0

❌ = Not yet implemented

⚠️ = Implemented but not officially released

🚧 = In progress

Build & Runtime Dependencies

This code requires Go 1.24

Compilation and Test

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