Apache datasketches

Clone this repo:
  1. a39564d Merge pull request #137 from proost/feat-aos-sketch by Hyeonho Kim · 2 days ago main
  2. 5161352 doc: update docs by proost · 6 days ago
  3. 087a5a0 feat: AoS sketch by proost · 6 days ago
  4. 38616a8 Merge pull request #133 from proost/refactor-remove-useless-conversion by Hyeonho Kim · 2 weeks ago
  5. d5f6e04 Merge pull request #132 from proost/perf-reduce-serialization by Hyeonho Kim · 2 weeks 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.

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.

Major Sketches

TypeImplementationStatus
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

Specialty Sketches

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

❌ = 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