hermes Svelte Themes

Hermes

Hermes is a desktop app for composing, sending, and receiving HL7v2 messages.

Hermes
icon

A desktop application for composing, sending, and receiving HL7 messages for HL7 system development and testing.

Apache 2.0 License

Table of Contents

Overview

Hermes is a cross-platform desktop application built with Tauri and Svelte for working with HL7 v2.x messages. It's designed for HL7 system development and testing.

It enables you to edit both the raw HL7 message and individually extracted fields, and to send and receive messages over MLLP. Hermes includes an extension system that works like the Language Server Protocol, letting you add custom functionality without recompiling the entire application.

Screenshot

Features

Hermes offers dual-mode message editing through form-based segment tabs and a raw text editor with syntax highlighting for HL7 structure. Field descriptions and validation feedback appear in real-time as you work.

Network communication happens over MLLP (Minimal Lower Layer Protocol). Hermes can act as both a client (sending messages) and a server (listening for incoming messages), with full response handling and logging.

Prerequisites

Required

  • Node.js (v18 or later) - JavaScript runtime
  • pnpm (v8 or later) - Package manager
  • Rust (latest stable) - Backend language
  • Cargo - Rust package manager (comes with Rust)

Platform-Specific Requirements

macOS:

  • Xcode Command Line Tools: xcode-select --install

Linux:

  • Build essentials: sudo apt-get install build-essential libssl-dev
  • WebKit2GTK: sudo apt-get install webkit2gtk-4.0

Windows:

  • Microsoft Visual Studio C++ Build Tools
  • WebView2 (usually pre-installed on Windows 10/11)

Installation

  1. Clone the repository:

    git clone <repository-url>
    cd hermes
    
  2. Install frontend dependencies:

    pnpm install
    
  3. Build dependencies (optional, happens automatically on first run):

    cd src-tauri
    cargo build
    

Development

Running the Application

Development mode (with hot-reload):

pnpm tauri dev

This starts both the Vite dev server (frontend) and the Tauri application (desktop wrapper).

Frontend only (for UI development):

pnpm dev

Note: Backend commands won't work in frontend-only mode.

Type Checking

Run TypeScript type checking:

pnpm check

Watch mode for continuous type checking:

pnpm check:watch

Code Organization

See docs/ for detailed architecture and development documentation.

Building

Production Build

Build the application for your platform:

pnpm tauri build

This creates:

  • macOS: .dmg and .app in src-tauri/target/release/bundle/
  • Windows: .msi and .exe in src-tauri/target/release/bundle/
  • Linux: .deb, .AppImage in src-tauri/target/release/bundle/

Build Configuration

Tauri configuration is in src-tauri/tauri.conf.json:

  • App name and version
  • Window settings
  • Bundle identifiers
  • Plugin configurations

Dependencies

Frontend Stack

  • Svelte 5
  • SvelteKit
  • Vite

Backend Stack

  • Tauri
  • tokio
  • hl7-parser
  • hl7-definitions
  • hl7-mllp-codec

Tauri Plugins

Hermes uses several Tauri plugins for native functionality: clipboard-manager for clipboard operations, fs and dialog for file system access and file dialogs, store for persistent settings, log for application logging, persisted-scope to preserve file access permissions across restarts, and opener for opening URLs and files in external applications.

Contributing

See docs/development/ for detailed development guidelines.

Troubleshooting

Build Issues

Error: tauri command not found

pnpm install  # Re-install dependencies

Rust compilation errors after pulling changes

cd src-tauri
cargo clean
cargo build

WebView2 missing (Windows)

  • Download and install WebView2 Runtime from Microsoft

Development Issues

Frontend and backend out of sync

  • Restart pnpm tauri dev
  • Clear browser cache if running in dev mode

Changes not appearing

  • Vite hot-reload should work automatically
  • If not, restart dev server
  • Check console for errors

Runtime Issues

Application won't start

  • Check logs in the system console
  • Verify messages.toml exists and is valid
  • Try rebuilding: pnpm tauri build --debug

MLLP send/receive failing

  • Verify host and port settings
  • Check firewall rules
  • Ensure remote server is listening
  • Review timeout settings

License

Apache-2.0. See LICENSE for details


Note: This is a developer's tool for HL7 system development and testing. It is not intended for production use in clinical environments.

Top categories

Loading Svelte Themes