Skip to main content

mkfix

A FIX protocol testing engine for capital markets connectivity, built on mkio and mkui.

Features

  • Session Management -- Configure and run FIX sessions as initiator or acceptor. Multiple sessions on the same port with different CompIDs.
  • Raw Message Viewer -- Live virtualized table of FIX messages in tag=value format, streaming live by default, with time-based paging, per-column filters, sorting, and clipboard copy.
  • Message Detail -- Field-by-field breakdown of the message selected in the Raw Message viewer, with field names and enum translations.
  • Client Order & Trade Blotters -- Live order state machine driven by ExecutionReports; fill and partial fill records. Send NewOrderSingle from the blotter's New dialog; Cancel and Cancel/Replace working orders directly from the blotter.
  • Market Order & Trade Blotters -- The other side of the same flow: received orders can be accepted, rejected, and filled from the Market Orders blotter; sent trades can be corrected and busted from the Market Trades blotter (FIX 4.2 ExecTransType Correct/Cancel with ExecRefID).
  • Message Replay -- Load production FIX logs and replay them into a test session with speed control, message filtering, and pause/resume.
  • IOI & Allocation Viewers -- Indications of Interest and Allocation message tracking.
  • Session Protocol -- Logon, Logout, Heartbeat, TestRequest, ResendRequest, SequenceReset, GapFill, PossDupFlag handling, and heartbeat timeout detection.

Installation

pip install mkfix

Or from source:

git clone https://github.com/markuskimius/mkfix.git
cd mkfix
pip install -e .

Usage

mkfix                        # start with defaults (port 8080, mkfix.db)
mkfix -p 9090                # override port
mkfix -d mytest              # use mytest.db
mkfix -d :memory:            # in-memory database
mkfix myconfig.toml          # custom config file

Then open http://localhost:8080 in your browser.

Quick Start

  1. Create two sessions in the Session Manager -- one initiator pointing at the other as acceptor on the same port.
  2. Start both sessions -- Logon and Heartbeat messages will stream in the Raw Messages pane.
  3. Send an order with the New button on the Client Orders blotter -- see it in Raw Messages and the blotter itself; click any message row to break it out field by field in Message Detail. On the acceptor side it appears in Market Orders, where it can be accepted, rejected, or filled; fills land in Market Trades, where they can be corrected or busted.
  4. Replay a log from Tools > Replay Control -- load a production FIX log and replay it into a test session.

Configuration

mkfix uses a TOML config file (mkfix.toml). The built-in default is used when no config is specified. Key settings:

port = 8080
host = "0.0.0.0"
db_path = "mkfix.db"

Tables, services, and static routes are also configured in the TOML file. See the built-in mkfix.toml for the full schema.

Dependencies

  • mkio >= 0.1.65 -- async microservice framework (aiohttp + aiosqlite)
  • mkui >= 0.1.53 -- Web Components UI framework

License

GPL-2.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mkfix-0.5.0.tar.gz (73.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mkfix-0.5.0-py3-none-any.whl (65.1 kB view details)

Uploaded Python 3

File details

Details for the file mkfix-0.5.0.tar.gz.

File metadata

  • Download URL: mkfix-0.5.0.tar.gz
  • Upload date:
  • Size: 73.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.7

File hashes

Hashes for mkfix-0.5.0.tar.gz
Algorithm Hash digest
SHA256 89c059f261620094472bbf690ba68406793784fe40a0d64421f6d80f44dba2f3
MD5 758645467da20e215b680f03435320b6
BLAKE2b-256 c7ce17896cf7c3611525ce8ce8d4f944fb1542b66818b6d76314c0d6a0dc9435

See more details on using hashes here.

File details

Details for the file mkfix-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: mkfix-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 65.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.7

File hashes

Hashes for mkfix-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 02d553b7ae5b124a996bbd6d64711982583e63f882b22a4641819e5b7e9f9ce9
MD5 5c8717eb92ccba38709b7e580d3ba7bf
BLAKE2b-256 386dba0041816e5ad8a2a52f90510cb518418c4ed150dd291eae7ac2a7ea6df9

See more details on using hashes here.

Release history Release notifications | RSS feed

0.23.0

2 files

0.22.0

2 files

0.21.0

2 files

0.20.0

2 files

0.19.0

2 files

0.18.0

2 files

0.17.0

2 files

0.16.0

2 files

0.15.0

2 files

0.14.0

2 files

0.13.0

2 files

0.12.0

2 files

0.11.0

2 files

0.10.0

2 files

0.9.0

2 files

0.7.0

2 files

0.6.2

2 files

This release

0.5.0 This release

2 files

0.3.1

2 files

0.3.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page