FIX protocol testing engine built on mkio and mkui
Project description
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 -- Real-time stream of FIX messages in tag=value format with filtering by session, direction, and category.
- Translated Message Viewer -- Human-readable view with field names, enum translations, and expandable detail rows.
- Order Pad -- Send NewOrderSingle, Cancel, and Cancel/Replace requests.
- Order & Trade Blotters -- Live order state machine driven by ExecutionReports; fill and partial fill records.
- 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
- Create two sessions in the Session Manager -- one initiator pointing at the other as acceptor on the same port.
- Start both sessions -- Logon and Heartbeat messages will stream in the Raw Messages pane.
- Send an order from the Order Pad -- see it in Raw Messages, Translated Messages, and the Order Blotter.
- 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.36 -- async microservice framework (aiohttp + aiosqlite)
- mkui >= 0.1.10 -- Web Components UI framework
License
GPL-2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mkfix-0.1.0.tar.gz.
File metadata
- Download URL: mkfix-0.1.0.tar.gz
- Upload date:
- Size: 63.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0edeb1e82d8f87390d956a0295d36de1ea0110e3e63dd9e492332b5162055ac6
|
|
| MD5 |
e3585479b6597ad5d4c049d98b7c3b57
|
|
| BLAKE2b-256 |
1734228856e88d53e57d608ca418260380346452f2e7adcf34edaa981aa60ab2
|
File details
Details for the file mkfix-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mkfix-0.1.0-py3-none-any.whl
- Upload date:
- Size: 68.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b0212009800f0d25e7814094739e77298144150694d6e1b11155723aea38a632
|
|
| MD5 |
04c086a08969f0ece2f0444f5bacb095
|
|
| BLAKE2b-256 |
6299794f86038e0b76ff07a69c44d481703ff1dfc7cd615719c6c69c91d6487c
|