@@ -37,50 +37,28 @@ Clojure(Script)](https://github.com/comnik/clj-3df).
3737
3838Thanks to Differential Dataflow, all these capabilities are provided
3939within the dataflow model and can thus be scaled out to multiple
40- independent workers.
41-
42- In order to provide all this in an arguably tasteful package,
43- Declarative is less efficient and much more opinionated than
44- hand-written Differential Dataflow. In particular, it enforces a
45- fully-normalized, RDF-like data model heavily inspired by systems like
40+ independent workers. Declarative is less efficient and much more
41+ opinionated than hand-written Differential Dataflow. In particular, it
42+ enforces a fully-normalized, RDF-like data model heavily inspired by
43+ systems like
4644[ Datomic] ( https://docs.datomic.com/cloud/whatis/data-model.html ) or
47- LogicBlox.
48-
49- Other than that, Declarative is just Differential Dataflow under the
50- hood and can happily co-exist and interact with static, handwritten
51- dataflows.
52-
53- Included in this repository is the library itself, as well as a server
54- binary, which wraps a Differential worker to accept commands and query
55- plans via WebSocket connections.
56-
57- Declarative is in active development, with an alpha release scheduled
58- for Q1 2019.
59-
60- ## Build / Run
45+ LogicBlox. Other than that, Declarative is just Differential Dataflow
46+ under the hood and can happily co-exist and interact with static,
47+ handwritten dataflows.
6148
62- Assuming an up-to-date Rust environment, the server can be built and
63- run from within the [ server/ ] ( server/ ) sub-directory:
49+ Included in this repository is the library itself, a
50+ [ server ] ( ./server ) , and a [ cli ] ( ./cli ) .
6451
65- cd server/
66- cargo run --release -- <timely args> -- <server args>
52+ ## Build
6753
68- The server executable accepts two sets of arguments separated by ` -- ` ,
69- one for [ configuring timely
70- dataflow] ( https://github.com/frankmcsherry/timely-dataflow ) and the
71- other for configuring the server itself.
54+ The library is built using cargo. A sufficiently up-to-date Rust
55+ toolchain is enforced via the [ rust-toolchain file] ( ./rust-toolchain )
56+ included in this repository.
7257
73- ## Configuration
74-
75- OPTION | DESCRIPTION | DEFAULT
76- --port | port to listen at | 6262
77- --enable-cli | accept commands via stdin? | false
78-
79- Logging at a specific level can be enabled by setting the ` RUST_LOG `
80- environment variable to ` RUST_LOG=server=info ` .
81-
82- Configuration options are still very much in flux and are found in
83- [ the server module] ( src/server/mod.rs ) .
58+ Declarative Dataflow makes use of the [ log
59+ crate] ( https://docs.rs/log ) . Logging at a specific level can be
60+ enabled by setting the ` RUST_LOG ` environment variable to
61+ ` RUST_LOG=declarative_dataflow=<level> ` .
8462
8563## Documentation
8664
@@ -98,10 +76,16 @@ examples.
9876
9977## Clients
10078
101- Query plans are rather cumbersome to write manually and do not map to
102- any interesting, higher-level semantics. Currently we provide a
103- [ Datalog front end] ( https://github.com/comnik/clj-3df ) written in
104- Clojure.
79+ Declarative Dataflow servers accept a lower-level relational query
80+ plan representation, that is meant to be somewhat frontend
81+ agnosti. However query plans are rather cumbersome to write manually
82+ and do not map to any interesting, higher-level semantics. Currently
83+ we therefore provide a [ Datalog front
84+ end] ( https://github.com/comnik/clj-3df ) written in Clojure.
85+
86+ Please refer to [ the
87+ documentation] ( https://docs.rs/declarative-dataflow/0.1.0/declarative_dataflow/plan/index.html )
88+ for an overview of the supported query plans.
10589
10690## Further Reading / Watching
10791
0 commit comments