Apache datasketches

Clone this repo:
  1. 97efcf1 Merge pull request #147 from proost/feat-req-sketch by Hyeonho Kim · 9 days ago main
  2. 9f2f201 perf: align sketch memory layout by lani_karrot · 11 days ago
  3. c282ec4 feat: REQ sketch by lani_karrot · 12 days ago
  4. e19c449 refactor: move consts to sketch by lani_karrot · 12 days ago
  5. d79fbb8 Merge pull request #146 from proost/feat-quantile-sketch-sorted-view by Hyeonho Kim · 3 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.

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.

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

✅ = Released in v0.1.0

✅* = Released in v0.1.0, but partially implemented and unstable (API may change)

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