Skip to main content

Crate ironsbe

Crate ironsbe 

Source
Expand description

§IronSBE

High-performance SBE (Simple Binary Encoding) server/client for Rust.

IronSBE provides a complete implementation of the FIX Simple Binary Encoding protocol optimized for low-latency financial systems.

§Features

  • Zero-copy encoding/decoding - Direct buffer access for minimal overhead
  • Schema-driven code generation - Generate Rust code from FIX SBE XML schemas
  • Sub-microsecond latency - Optimized for high-frequency trading
  • Flexible transport - TCP, UDP multicast, and shared memory IPC
  • Market data patterns - Order book management, gap recovery, A/B arbitration

§Quick Start

use ironsbe::prelude::*;

// Create a server
let (mut server, handle) = ServerBuilder::new()
    .bind("0.0.0.0:9000".parse().unwrap())
    .handler(MyHandler)
    .build();

// Run the server
server.run().await?;

§Crate Organization

  • core - Buffer traits, headers, encoder/decoder traits
  • schema - XML schema parsing and validation
  • codegen - Rust code generation from schemas
  • channel - High-performance channels (SPSC, MPSC, broadcast)
  • transport - Network transports (TCP, UDP, IPC)
  • server - Server-side engine
  • client - Client-side engine
  • marketdata - Market data handling patterns

Modules§

broadcast
Broadcast channel for one-to-many messaging.
channel
High-performance channel implementations.
client
Client-side engine.
codegen
Code generation from SBE schemas.
core
Core types and traits for SBE encoding/decoding.
marketdata
Market data handling patterns.
mpsc
MPSC (Multi-Producer Single-Consumer) channel.
prelude
Prelude module for convenient imports.
schema
Schema parsing and validation.
server
Server-side engine.
spsc
Ultra-low-latency SPSC (Single-Producer Single-Consumer) channel.
transport
Network transport layer.

Structs§

AlignedBuffer
Cache-line aligned buffer for optimal CPU cache performance.
BufferPool
Pool of reusable aligned buffers to avoid allocation overhead.
ClientBuilder
Builder for configuring and creating a client.
ClientHandle
Handle for sending messages and receiving events.
GroupHeader
Repeating group header (4 bytes).
MessageHeader
Standard SBE message header (8 bytes).
ServerBuilder
Builder for configuring and creating a server.
ServerHandle
Handle for controlling the server from outside.
VarDataHeader
Variable-length data header.

Enums§

DecodeError
Error type for decoding operations.

Traits§

ReadBuffer
Trait for read-only buffer access with optimized primitive reads.
SbeDecoder
Trait for zero-copy SBE message decoders.
SbeEncoder
Trait for SBE message encoders.
WriteBuffer
Trait for read-write buffer access with optimized primitive writes.