finds.dev← search

// the find

quickfix-j/quickfixj

★ 1,141 · Java · NOASSERTION · updated Jul 2026

QuickFIX/J is a full featured messaging engine for the FIX protocol. - This is the official project repository.

QuickFIX/J is the canonical Java implementation of the FIX protocol, used for electronic trading message exchange. It covers FIX 4.0 through FIXLatest and handles the full session lifecycle: logon, heartbeats, sequence number management, gap fill, and message store/replay. If you're building a sell-side OMS, an algorithmic trading system, or anything that needs to talk FIX to a broker or exchange, this is the library you reach for — there isn't a credible Java alternative.

The message cracker pattern with generated type-safe classes per FIX version means you get compile-time checking that a given field actually exists on a given message type — the OrderCancelRequest example in the README shows the compiler catching a field mismatch. The modular artifact structure (quickfixj-messages-fix42, fix44, etc.) lets you exclude FIX versions you don't need rather than dragging in every generated class. Apache MINA under the hood is battle-tested for high-throughput NIO, and the library ships both single-threaded and thread-per-session event handling strategies with actual documentation on the tradeoffs. Active maintenance is evident: CodeQL scanning, Dependabot, nightly builds, and commits as recently as days ago.

The build is genuinely painful — the README warns you to compile on the command line before importing into an IDE because generated message classes don't exist yet, and the fastest build flag set still takes non-trivial time due to the sheer volume of code generation. Acceptance tests are a separate slow suite you need to know to skip. The networking layer is Apache MINA, which is in maintenance mode and hasn't been a first choice for new projects in years — it works, but anyone hitting edge cases in NIO handling or needing async back-pressure integration with modern reactive stacks will find it limiting. Configuration is still .ini file based, which means no type safety, poor IDE support, and errors that surface at runtime rather than startup. Custom FIX message definitions require a code generation pipeline most teams don't have set up, so deviating from standard spec messages adds real friction.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →