/dozer

Open-source platform to build, publish and manage blazing-fast real-time data APIs in minutes.

Primary LanguageRustOtherNOASSERTION



Data APIs, done right!

⚡️ Open-source platform to build, publish and manage blazing-fast real-time data APIs in minutes ⚡️

CI Coverage Status Docs Join on Discord License


Quick Start

Refer to our getting started and examples section for more details.

1) End-to-end hypercharge postgres example

docker-compose -f examples/1_hypercharge_postgres/docker-compose.yml up

2) Real time Ethereum stats example

Get a websocket url from one of the hosted eth node providers such as Infura and initialize the env variable ETH_WSS_URL.

# Intialize ETH Web Socker Url
export ETH_WSS_URL=<WSS_URL>

docker-compose -f examples/2_eth_stats_sample/docker-compose.yml up

Running Dozer CLI

To view list of commands

docker run -it \
  public.ecr.aws/k7k6x1d4/dozer \
  dozer -h

Run dozer as a single process with a local dozer-config.yaml

# `dozer-config.yaml` should be in your current directory.
docker run -it \
  -v "$PWD":/usr/dozer \
  -p 8080:8080 \
  -p 50051:50051 \
  public.ecr.aws/k7k6x1d4/dozer \
  dozer

Releases

We release dozer typically every 2 weeks and is available on our releases page. Currently we publish a binary for Ubuntu 20.04 and also as a docker container.

Please visit our issues section if you are having any trouble running the project.

Architecture

Architecture

  • Create blazing fast end to end APIs in minutes with a simple configuration.
  • Build and rapidly iterate on customer facing data apps.
  • Extend Dozer with custom connectors, operators and Api transformations using WASM.
  • Built in Rust with performance and extensibility in mind.

Read more about Dozer here

Features

  • Connect your sources
    • Import real time data from Postgres as CDC, Snowflake Table Stream etc.
    • Create your own connector using Rust
    • Automatic schema evolution and validation
  • Transform in REAL-TIME
    • Use SQL to perform joins, aggregations and filter operations in real time across sources.
    • Use it like an ORM; Map relational data to object entities using Dozer SQL extensions
    • Build custom functions for aggregation, selection etc. using WASM
  • Optimize for serving
    • Define indices with a simple configuration
    • Support for multiple indices such as Inverted, Full Text, Compound, Geo (Coming soon!) etc.
    • Apply filter and sort operations on cached data
    • Support for Push and Pull queries
  • Publish blazing fast APIs
    • gRPC and REST APIs automatically generated
    • Protobuf an Open API documentation
    • TypeSafe APIs
    • Realtime Streaming

Contributing

Please refer to Contributing for more details.