flowmark
Flowmark is a Markdown auto-formatter designed for better LLM workflows, clean git diffs, and flexible use from CLI, from IDEs, or as a library.
Rust Port of Python Flowmark
This is an auto-synced Rust port of the Python version. The original Python version is well tested and this port aims for identical CLI usage and formatting behavior.
Last sync: 2026-02-19 against Python v0.6.4
More Info
See the Python version for full documentation, including features, CLI reference, configuration, IDE setup, and agent use.
Why the Rust version?
- Single binary, no runtime —
cargo installor download a binary. No Python environment needed. - Fast — useful for large repos or CI pipelines.
- Library crate — embed formatting in Rust toolchains via docs.rs/flowmark.
Installation
Install from crates.io:
Or download a pre-built binary from GitHub Releases.
Usage
# Format a file in place
# Format all markdown in current directory
# Read from stdin, write to stdout
|
Library usage
use FormatOptions;
let opts = default;
let formatted = opts.reformat_text;
assert_eq!;
See docs.rs/flowmark for full API documentation.
Port Status
This crate tracks flowmark with full feature parity:
- Identical formatting output for all supported Markdown constructs (CommonMark + GFM: tables, footnotes, alerts, strikethrough, task lists, math)
- Identical CLI flags, configuration files, and file discovery
- 430 tests (0 ignored, 0 failures), including 31 cross-language parity tests
- All 292 Python tests have verified Rust counterparts — see the port coverage mapping for the full test-by-test mapping, which is CI-enforced
The port was created using the rust-porting-playbook.
Documentation
| Document | Description |
|---|---|
| docs/port-status.md | Full project status, release readiness, architecture, and doc index |
| docs/publishing.md | Release process and crates.io publishing |
| docs/port-sync-playbook.md | How the Rust codebase stays in sync with Python upstream |
| admin/ | Port administration: test mapping, dev tools, maintenance procedures |
| CONTRIBUTING.md | Build, test, and lint instructions |
| CHANGELOG.md | Release notes |