FIX Antenna Rust Release Notes
FIX Antenna Rust API Alpha 0.1.0
FIX Antenna™ Rust API provides safe Rust wrappers around the B2BITS FIX Antenna C++ API via CXX, with a focus on session management, application callbacks, and FIX message/group manipulation. This first alpha is aimed at early adopters who want to embed FIX Antenna into Rust services while keeping the core engine in native C++.
Requirements & Compatibility
Rust + Cargo project consuming the
fixantenna_bindingscrate.C++ FIX Antenna SDK available for linking (the Rust crate is an FFI layer over the native engine).
The Rust API surface is alpha: expect breaking changes between alpha drops.
FIX Engine
Engine lifecycle wrapper
FixEngine::new("…properties")andFixEngine::new_default()(./engine.properties)FixEngine::is_initialized()FixEngine::get_listen_port()
Configured sessions discovery
FixEngine::get_configured_sessions_list()returns configuredSessionIdWrappers from properties.
Session creation
FixEngine::create_session(session_id, fix_version, app_version)Supported
fix_versionstrings include:FIX40…FIX44,FIXT11(with optionalapp_versionlikeFIX50,FIX50SP1, etc.)
Sessions Processing
Initiator / Acceptor connect
connect()(acceptor mode)connect_initiator()(initiator mode)disconnect()
Application registration (callbacks)
register_application(app, delay_ms, max_tries)unregister_application()
Message send
put(&FixMessage)andput_fast(&FixMessage)
Session inspection
get_session_id()get_state()Remote endpoint:
get_remote_host_ip(),get_remote_port()Queue:
get_outgoing_queue_size()Parser access:
get_parser()
Sequence numbers
get_in_seq_num(),get_out_seq_num()set_in_seq_num(),set_out_seq_num()reset_seq_num_local()reset_seq_num_and_send_logon()
Configuration
Properties-based engine startup
FixEngine::new(properties_file)/new_default()
Strongly-typed session parameters builder
FixSessionParametersProxysupports:network:
host/port,listen_address/listen_portheartbeat:
hbireconnect:
reconnect_interval,reconnect_max_tries,forced_reconnectIDs: sender/target sub IDs + location IDs
logging:
log_dirlogon customization:
custom_logon_message/custom_logon_message_file_namecredentials:
user_name,password,new_password, tag overrides,hidden_logon_credentialsreset behavior:
reset_seq_num_on_non_graceful_terminationvalidate(), arbitrary property set/get/del, and conversionto_engine_params()
Message composition API
Create / serialize
FixMessage::new(msg_type)FixMessage::from_string(raw_fix)FixMessage::to_string()/to_raw()
JSON support
FixMessage::to_json(),FixMessage::from_json()JsonParseSettings+JsonTagsHandlingActionfor handling unknown/custom tags and group parsing behavior
Field access (typed and untyped)
generic:
set(tag, value),get(tag),remove(tag),has_value(tag)typed getters/setters:
int32/uint32/int64/uint64/double/decimal/bool/char/string
Header/session helpers
sender_comp_id,target_comp_id,seq_num,heart_beat_interval(+ setters)
Classification helpers
is_administrative,is_business_reject,is_session_reject,is_original,is_empty
Repeating groups
FixMessage::get_group(tag)→FixGroupFixGroup/FixGroupEntrysupport nested group access, typed field ops, presence checks, and removals
Rust safe mode and unsafe fast path
FIX Antenna Rust is safe by default by leveraging Rust’s compilation model where the compiler enforces strict memory safety guarantees. In this safe mode, common classes of issues such as null pointer dereferences, buffer overflows, use-after-free, and data races are prevented at compile time. Any operation that can bypass these guarantees must be explicitly placed inside an unsafe { } block, making the safety boundary clear and intentional.
In addition to the safe API, FIX Antenna Rust includes a limited set of unsafe variants for selected hot-path functions. These are intended for latency-critical workloads and can achieve extremely low overhead calls on the order of 1–2 ns per call when used with well-crafted, safety-audited application code. The unsafe fast path is used in performance benchmarking, while the main API remains safe-by-default to provide more than a direct “naked C” interface.
Security
SSL/TLS configuration surface
SslContextConfigurator,SslContextTypeCertificate structures:
CACertificateLocations,ClientCAList,CertificatePrivateKeyPair,SslCertificateDataRecord,SslCertificateEncoding
Session parameter hooks
SSL protocols/ciphers, certificate/private key, passwords, CA certs, peer validation flags exposed on
FixSessionParametersProxy
Interoperability with C++ and wrapper extensibility
Other options:
Rust and C++ interoperability
Mixed-language access and custom extensions
Using FIX Antenna from Rust and C++
Extending the Rust wrapper