Packages

Typed distributed messaging for Gleam on the BEAM.

Retired package: Deprecated - The project needs to be redesigned around a much smaller and clearer core.

Current section

Files

Jump to
distribute src distribute.gleam
Raw

src/distribute.gleam

/// The `distribute` library provides **type-safe** distributed computing primitives for Gleam.
///
/// ## Type-Safety Enforcement (v2.0+)
///
/// All messaging APIs now enforce compile-time type safety using:
/// - **GlobalSubject(msg)**: Opaque wrapper with encoder/decoder for type-safe messaging
/// - **Binary codecs**: Encoder(a)/Decoder(a) for serialization
/// - **gleam_otp integration**: Compatible with standard `Subject(BitArray)`
///
/// ## Migration from v1.x
///
/// Legacy untyped functions are deprecated:
/// - Use `send_global_typed` instead of `send_global`
/// - Use `whereis_global` instead of `whereis_typed` for GlobalSubject
/// - Use `whereis_with_tag` for custom actors with known tags
///
/// ## Core Modules
///
/// - `distribute/global`: GlobalSubject type for type-safe distributed messaging
/// - `distribute/codec`: Binary serialization with composable encoders/decoders
/// - `distribute/cluster`: Cluster formation and management
/// - `distribute/connection_pool`: Efficient connection pooling
/// - `distribute/groups`: Process groups (pg) with type-safe broadcast
/// - `distribute/messaging`: Inter-node type-safe messaging
/// - `distribute/monitor`: Node and process monitoring
/// - `distribute/node_builder`: Fluent API for node configuration
/// - `distribute/registry`: Global process registry with type-safe lookup
/// - `distribute/remote_call`: Type-safe RPC mechanisms
/// - `distribute/receiver`: Type-safe message receiving with gleam_otp selectors
/// - `distribute/settings`: Configuration settings
///
pub fn version() {
"2.0.0"
}