Skip to content
PappetPublic

About

Harux is a high-performance MLLP server and real-time testing tool built in Rust. It features an embedded Web UI that allows multiple developers to receive, inspect, filter, and analyze HL7 v2.x messages simultaneously directly in the browser—eliminating the need for local legacy desktop tools.

Topics

Resources

Contributing

Security policy

Stars

2 stars

Watchers

1 watching

Forks

Repository files navigation

Harux

Build Release License Rust


Harux is a high-performance MLLP server with a real-time web UI for inspecting HL7 v2.x messages — built in Rust, deployed as a single binary.

Designed as a drop-in replacement for HL7 Inspector: runs as a central service, accessible by your entire team via browser. No local setup. No RDP-exclusive windows.


Download · Docs · Quickstart


Features

  • MLLP Server — async TCP listener with correct 0x0B/0x1C 0x0D framing, auto ACK/NACK
  • Real-time Web UI — browser SPA with WebSocket push, modern typography, two-line message layout, and time-bucket group headers
  • Accessibility — full keyboard navigation (Tab focus) and Enter/Space activation for screen-reader and keyboard-only workflows
  • Deep HL7 Parser — dynamic delimiter detection, full segment/field/component decomposition
  • Five Message Views — Parsed segments, Raw HL7, sent ACK/NACK, JSON, and Segment Diff
  • HL7 Dictionary Tooltips — hover any field or segment header for its official HL7 v2.5.1 description; no internet required
  • Message Type Detection — human-readable type description and typical segments checklist per message
  • Validation Engine — warnings for missing required fields/segments (amber) and invalid field data types (blue); per message type; non-blocking, all messages are stored regardless
  • Validation Filter — one-click filter to show only messages with warnings or errors; also supports has:warnings / has:errors search prefixes
  • Segment Diff — pin any message as a reference and compare it field-by-field; optional toggle to hide always-changing dynamic fields (MSH-7, MSH-10)
  • Search & Filter — global shortcut Cmd+K to search by message type, patient name, facility, message control ID, source IP
  • Bookmark & Tag — pin important messages (eviction-protected), add custom text tags
  • Session-based Views — each developer sees their own filters, selection, and scroll position
  • Source Rail — always-visible rail of color-coded source chips to instantly visually distinguish and filter by sender system/IP
  • Smart Store — in-memory with configurable capacity and dual eviction (count + size)
  • JSON Export — export full message data with one click
  • Resizable Panels — drag splitter between message list and detail view
  • Configurable — harux.toml for ports, memory limits, timeouts, log level
  • Single Binary — frontend embedded via rust-embed, zero runtime dependencies

Quick Start

Prerequisites: Rust toolchain

git clone https://github.com/Pappet/harux.git
cd harux
cargo build --release
cargo run --release

Open http://localhost:8080 — the UI connects automatically.

Defaults: MLLP port 2575, Web UI port 8080. Override via harux.toml or environment variables (MLLP_PORT, WEB_PORT).

Windows

# Direct start
.\harux.exe

# Install as Windows Service (NSSM)
nssm install Harux C:\Tools\harux.exe
nssm start Harux

Pre-built binaries for Windows, macOS, and Linux are available on the Releases page.


Documentation

Document Description
PROJECT_OVERVIEW.md Detailed architecture, technical decisions, API reference
ROADMAP.md Milestones, planned features, and progress tracking
STYLE_GUIDE.md UI design rules, coding conventions, workflow standards
CHANGELOG.md Full history of every change
CONTRIBUTING.md How to contribute

Contributing

Contributions are welcome. Please open an issue first for larger changes.

git checkout -b feature/my-feature
cargo test && cargo clippy -- -D warnings
# Submit a pull request against main

License

MIT — see LICENSE for the full text.


Built with Rust · github.com/Pappet/harux

About

Harux is a high-performance MLLP server and real-time testing tool built in Rust. It features an embedded Web UI that allows multiple developers to receive, inspect, filter, and analyze HL7 v2.x messages simultaneously directly in the browser—eliminating the need for local legacy desktop tools.

Topics

Resources

Contributing

Security policy

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages