# DataSketches Server
This is a very simple, container-friendly web server with a JSON API. The provided
server can be used to experiment with sketches or to add sketch functionality to a
project without natively integrating with the DataSketches library.

This is not intended to provide a high-performance database; there are already
existing integrations with PostgreSQL or Druid for such cases. The focus here 
is on ease-of-use rather than speed.

The repository is still in a very early state and lacks both unit tests and
robust documentation.
