Skip to main content

MachStruct — A native macOS viewer for huge structured files | LUSTECH

MachStruct #

A native macOS app for viewing and editing large JSON, XML, YAML, and CSV files. MIT-licensed, built by LUSTECH, released April 2026.

machstruct.com → · Source on GitHub →

MachStruct showing a JSON tree

The problem #

Working on integrations means working with large structured payloads — ETL exports, MuleSoft payloads, API dumps, log files. The tools we kept reaching for failed in the same predictable ways:

  • Editors choke past a few hundred MB or freeze the UI while parsing
  • Online viewers and “paste your JSON here” sites mean handing customer data to a stranger’s server
  • jq and xmllint work, but spinning up a pipeline for an ad-hoc inspection is friction
  • Quick Look on macOS shows a few KB then gives up

We wanted a fast, native, offline tool we’d actually reach for during a workday. Nothing existed at the bar we wanted, so we built one.

The approach #

Three constraints shaped everything else:

  1. Sub-second to a usable view, even on 100 MB files. Means SIMD parsing (simdjson), memory-mapped I/O, and rendering as the index streams in.
  2. Native macOS, not Electron. Means SwiftUI for the tree, AppKit where it earns its keep, integration with Quick Look, Spotlight, and the Services menu, and a binary that doesn’t ship a browser.
  3. Open source, MIT. No telemetry, no account, no upsell screen.

The first two rule out most existing toolkits. The third rules out half the macOS app business model.

MachStruct CSV table view

Stack #

  • Swift 5.10 on macOS 14+
  • simdjson (vendored) for JSON; libxml2 SAX for XML; Yams/libyaml for YAML; hand-rolled RFC 4180 parser for CSV
  • SwiftUI + AppKit for the view layer; native UndoManager, drag-and-drop, document architecture
  • Sparkle for auto-updates on direct distribution
  • 332 tests covering parser corner cases, performance SLAs, format round-trips, and UI flows

Outcome #

  • v1.0.2 shipped April 2026. Direct download today, App Store submission in flight.
  • 100 MB JSON indexes in ~264 ms on an M1; 10 MB in ~112 ms.
  • Under 5 MB of resident memory for a 100 MB document — mmap does the heavy lifting.
  • Quick Look, Spotlight, and Services integration: structured files are searchable in Finder, previewable with Space, and formatable from any app’s selection.

Why this lives on the LUSTECH site #

Building MachStruct sharpened the muscles we use on client work: SIMD-level performance thinking, native macOS app architecture, parser engineering for messy real-world data, and shipping a polished product with public-facing docs and tests. The same engineering bar shows up when we deliver integrations. It also runs at 3am without us.