Changelog
View Source0.1.0
Initial release.
Session protocol
FixAlchemy.Engineruns the session protocol for one connection, independent of which side dialed: framing, sequence numbers, heartbeats and TestRequests, ResendRequests and replay, and delivery to subscribers.FixAlchemy.Clientinitiates: dials, sends the Logon, reconnects with backoff.FixAlchemy.Serveraccepts: listens over TCP or TLS, matches each Logon to a configured session, and refuses one that matches nothing, fails credentials, or names a session already connected.
Dictionaries
- Generates field, message, and repeating-group parsers from a venue's FIX XML,
including the
FIXT1.1.xmlandFIX50SP2.xmlpair a FIX 5.0 session needs. FixAlchemy.Engine.Validationchecks inbound messages against the dictionary and answers a bad one with a Reject naming the SessionRejectReason.
Routing and market data
FixAlchemy.Dispatchroutes inbound messages to subscribers by MsgType, by a tag equalling a value, or by a predicate over a tag.FixAlchemy.Feedpublishes one price to many sessions through a tree of venue transforms, applying each transform once however many sessions sit below it.
Storage
FixAlchemy.MessageStoreretains sent messages for replay; in-memory by default.FixAlchemy.SessionStorecarries sequence numbers across connections and restarts, keyed by BeginString, SenderCompID and TargetCompID; ETS-backed implementation included.