[][src]Crate declarative_dataflow

Declarative dataflow infrastructure

This crate contains types, traits, and logic for assembling differential dataflow computations from declaratively specified programs, without any additional compilation.

Re-exports

pub use binding::AsBinding;
pub use binding::AttributeBinding;
pub use binding::Binding;
pub use plan::Hector;
pub use plan::ImplContext;
pub use plan::Implementable;
pub use plan::Plan;
pub use timestamp::Rewind;
pub use timestamp::Time;

Modules

binding

Binding language, mainly for use in Hector-powered plans.

domain

Logic for working with attributes under a shared timestamp semantics.

logging

Loggers and logging events for declarative dataflow.

operators

Extension traits for Stream implementing various declarative-specific operators.

plan

Types and traits for implementing query plans.

server

Server logic for driving the library via commands.

sinks

Types and operators to feed outputs into external systems.

sources

Types and operators to work with external data sources.

timestamp

Various timestamp implementations.

Structs

AttributeConfig

Per-attribute semantics.

CollectionRelation

A collection and variable bindings.

Error

A client-facing, non-exceptional error.

RelationConfig

Per-relation semantics.

Rule

A named relation.

ShutdownHandle

A wrapper around a vector of ShutdownButton's. Ensures they will be pressed on dropping the handle.

TxData

Transaction data.

Enums

Implemented

@TODO

IndexDirection

Attributes can be indexed in two ways, once from eid to value and the other way around. More powerful query capabilities may rely on both directions being available, whereas simple queries, such as star-joins and pull queries, might get by with just a forward index.

InputSemantics

Attribute indices can have various operations applied to them, based on their semantics.

Output

Anything that can be returned to clients.

QuerySupport

Attributes might only appear in certain classes of queries. If that is the case, indexing overhead can be reduced.

Value

Possible data values.

Functions

collect_dependencies

Returns a deduplicates list of all rules used in the definition of the specified names. Includes the specified names.

implement

Takes a query plan and turns it into a differential dataflow.

implement_neu

@TODO

q

Helper function to create a query plan. The resulting query will provide values for the requested target variables, under the constraints expressed by the bindings provided.

Type Definitions

Aid

A unique attribute identifier.

Client

A worker-local client connection identifier.

Eid

A unique entity identifier.

Rational32

Alias for a Ratio of 32-bit-sized integers.

RelationHandle

A handle to an arranged relation.

ResultDiff

A (tuple, time, diff) triple, as sent back to clients.

TraceKeyHandle

A trace of values indexed by self.

TraceValHandle

A trace of (K, V) pairs indexed by key.