Skip to content

susspectsoftware-dev/urchen-fix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Urchen FIX Engine

A low-latency, high-throughput FIX (Financial Information eXchange) engine designed for ultra-fast message parsing and serialization with near-zero garbage production.

Urchen is built for HFT, market-making, and any performance-critical trading infrastructure. Its architecture emphasizes:

  • Deterministic latency
  • Zero-GC data paths
  • Batch-oriented parsing/serialization
  • Mechanical sympathy and cache-aware design

Features

  • Zero-GC FIX codec for minimal runtime pauses
  • High-throughput batch parsers for processing millions of messages efficiently
  • Optimized serialization pipeline
  • Supports standard FIX dictionaries with extensibility
  • Lock-free internal architecture
  • JMH-based benchmarking suite

Performance Benchmarks

The following benchmarks were executed using JMH. Throughput is measured in operations per microsecond (ops/us).

JMH Results

Benchmark Name Mode Cnt Score Error Units
FixCodecZeroGCBenchmark.batchParseOnly_ZeroGC thrpt 5 ≈ 10⁻⁵ ops/us
FixCodecZeroGCBenchmark.batchParseSerialize_ZeroGC thrpt 5 ≈ 10⁻⁶ ops/us
FixCodecZeroGCBenchmark.batchSerializeOnly_ZeroGC thrpt 5 ≈ 10⁻⁶ ops/us

Interpretation:

  • The engine is capable of extremely fine-grained message handling.
  • Parse-only mode achieves the highest throughput.
  • Serialization and combined parse+serialize modes maintain microsecond‑level consistency.

Installation

git clone https://github.com/your-org/urchen-fix-engine.git
cd urchen-fix-engine
./gradlew build

Usage

Basic Initialization

FixSession session = FixSession.builder()
    .withSenderCompId("SENDER")
    .withTargetCompId("TARGET")
    .build();

Parsing a FIX Message

FixMessage msg = FixCodec.parse(rawBytes);

Serializing a Message

byte[] bytes = FixCodec.serialize(msg);

Configuration

  • Session parameters
  • Heartbeat intervals
  • FIX version dictionaries
  • Batch size tuning
  • Low-level buffer allocations for zero-GC mode

Benchmarking

Run the included JMH benchmarks:

./gradlew jmh

Roadmap

  • Full FIXT 1.1 support
  • Persistent session state store
  • Hardware-offload experiments (IO_uring, DPDK)
  • SIMD-accelerated parsing

License

Restricted Commercial Only


Contact

For support or integration assistance, contact the Urchen development team.

About

Urchen FIX Engine

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages