Module live_collections

Module live_collections 

Source
Expand description

Definitions for live collections, which offer the core APIs for writing distributed applications.

Traditional programs (like those in Rust) typically manipulate collections of data elements, such as those stored in a Vec or HashMap. These collections are fixed in the sense that any transformations applied to them such as map are immediately executed on a snapshot of the collection. This means that the output will not be updated when the input collection is modified.

In Hydro, programs instead work with live collections which are expected to dynamically change over time as new elements are added or removed (in response to API requests, streaming ingestion, etc). Applying a transformation like map to a live collection results in another live collection that will dynamically change over time. All network inputs and outputs in Hydro are handled via live collections, so the majority of application logic written with Hydro will involve manipulating live collections.

See the Hydro docs for more.

Modules§

boundedness
Type declarations for boundedness markers, which indicate whether a live collection is finite and immutable (Bounded) or asynchronously arriving over time (Unbounded).
keyed_singleton
Definitions for the KeyedSingleton live collection.
keyed_stream
Definitions for the KeyedStream live collection.
optional
Definitions for the Optional live collection.
singleton
Definitions for the Singleton live collection.
stream
Definitions for the Stream live collection.

Structs§

KeyedSingleton
Mapping from keys of type K to values of type V.
KeyedStream
Streaming elements of type V grouped by a key of type K.
Optional
A nullable Rust value that can asynchronously change over time.
Singleton
A single Rust value that can asynchronously change over time.
Stream
Streaming sequence of elements with type Type.