Skip to main content

Crate hexeract

Crate hexeract 

Source
Expand description

The Rust messaging framework for reliable event-driven services.

Hexeract is an opinionated messaging framework for Rust. It unifies in-process mediator dispatch, multi-broker bus transport and a transactional outbox in a single ergonomic crate. Sagas, scheduler and request/reply are planned for future releases (see ROADMAP.md).

This facade re-exports every shipped sub-crate behind opt-in feature flags so consumers only compile what they actually use.

§Quick start

Outbox over PostgreSQL:

[dependencies]
hexeract = { version = "0.5", features = ["outbox-sql-postgres"] }

Bus over RabbitMQ:

[dependencies]
hexeract = { version = "0.5", features = ["bus-rabbitmq"] }

Both together:

[dependencies]
hexeract = { version = "0.5", features = ["outbox-sql-postgres", "bus-rabbitmq"] }

§Feature matrix

FeatureEnablesPulls
coreCross-cutting primitives (MessageId, CorrelationId, HandlerContext)hexeract_core
outboxBackend-agnostic outbox traitshexeract_outbox
outbox-sql-postgresPostgreSQL outbox backend via sqlxhexeract_outbox + hexeract_outbox_sql
outbox-sql-mysqlMySQL outbox backend via sqlxhexeract_outbox + hexeract_outbox_sql
outbox-sql-sqliteSQLite outbox backend via sqlxhexeract_outbox + hexeract_outbox_sql
busBackend-agnostic bus traitshexeract_bus
bus-rabbitmqRabbitMQ bus backendhexeract_bus + hexeract_bus_rabbitmq
mediatorIn-process CQRS mediatorhexeract_mediator
middlewareBuilt-in tracing and timeout middlewareshexeract_middleware
macros#[handler] attribute macro for handler registrationhexeract_macros + hexeract_core

Every feature transitively enables core, so a downstream user automatically has access to hexeract::core::HandlerContext.

Re-exports§

pub use hexeract_core as core;core
pub use hexeract_outbox as outbox;outbox
pub use hexeract_outbox_sql as outbox_sql;outbox-sql-mysql or outbox-sql-postgres or outbox-sql-sqlite
pub use hexeract_bus as bus;bus
pub use hexeract_bus_rabbitmq as bus_rabbitmq;bus-rabbitmq
pub use hexeract_mediator as mediator;mediator
pub use hexeract_middleware as middleware;middleware
pub use hexeract_macros as macros;macros