Database Stream Processor (DBSP) is a high-performance runtime for streaming computations. DBSP provides a low-level Rust API to transform, filter, join, aggregate, etc., streams of data in real time. This repository contains an infrastructure to run programs written in high-level languages on top of DBSP. We aim to support several such languages:
In particular, this repository will define:
rustc
and cargo
for building the language server and compiler, it's recommended to install them via rustup
rustfmt
and clippy
for formatting and linting the language server and compilernpm
for building the language server extensionWe use cargo
for the majority of our building and testing infrastructure
# Run all tests
$ cargo test
# Build the language server (add the `--release` flag for a release build)
$ cargo build --bin ddlog-driver
# Run the language server (add the `--release` flag for a release build)
$ cargo run --bin ddlog-driver
To enable logging while running tests or binaries, set the DDLOG_LOG
flag to a
logging directive,
a good starting point would be DDLOG_LOG=info
.
The five supported error levels are error
, warn
, info
, trace
and debug
. Setting the log level will enable all logs
that occur at that level or higher, e.g. setting the log level to info
will also enable all logs with the error
or warn
levels.
Developer tooling is provided by the xtask
crate
# See all available xtask commands
$ cargo xtask help
# Set up the repo for development
$ cargo xtask setup
# Run code generation
$ cargo xtask codegen
# Format all rust code
$ cargo fmt
# Lint all rust code
$ cargo clippy