Packages

A FIX protocol engine for Elixir — Financial Information Exchange for trading venues and brokers. Speaks any FIX version, building its dictionary from any QuickFIX-format spec XML. Runs initiator or acceptor sessions, routing market data, orders and execution reports, decoding only what you use.

Current section

Files

Jump to
fix_alchemy CHANGELOG.md
Raw

CHANGELOG.md

# Changelog
## 0.1.0
Initial release.
### Session protocol
- `FixAlchemy.Engine` runs 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.Client` initiates: dials, sends the Logon, reconnects with backoff.
- `FixAlchemy.Server` accepts: 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.xml` and `FIX50SP2.xml` pair a FIX 5.0 session needs.
- `FixAlchemy.Engine.Validation` checks inbound messages against the dictionary
and answers a bad one with a Reject naming the SessionRejectReason.
### Routing and market data
- `FixAlchemy.Dispatch` routes inbound messages to subscribers by MsgType, by a
tag equalling a value, or by a predicate over a tag.
- `FixAlchemy.Feed` publishes one price to many sessions through a tree of venue
transforms, applying each transform once however many sessions sit below it.
### Storage
- `FixAlchemy.MessageStore` retains sent messages for replay; in-memory by
default.
- `FixAlchemy.SessionStore` carries sequence numbers across connections and
restarts, keyed by BeginString, SenderCompID and TargetCompID; ETS-backed
implementation included.