Modern, open-source replacement for JFLAP 7.1 — a tool for experimenting with formal languages and automata.
Compatibility is under active development. See the JFLAP 7.1 compatibility contract for current limitations and the action plan for progress.
- DFA / NFA — create, edit, and simulate finite automata
- PDA — pushdown automata with stack visualization
- Turing Machine — single-tape Turing machine editor and simulator
- JFLAP Compatibility — import and export
.jfffiles (JFLAP 7.1 format) - Cross-platform — runs in the browser and as a native desktop app (Windows, macOS)
- TypeScript, Vue 3, Vite
- Tauri 2 (native desktop shell for Windows and macOS)
- pnpm workspaces + Turborepo (monorepo)
pnpm install# Web app
pnpm dev:web
# Desktop app
pnpm dev:desktop
# Both
pnpm dev# Web + desktop workspace builds
pnpm build
# Desktop frontend only
pnpm --filter @jauto/desktop build:frontend
# Native desktop bundle (requires Rust/Cargo)
pnpm --filter @jauto/desktop buildpnpm testThe desktop uses Tauri. The Vue renderer lives in
apps/desktop/src/renderer, while the native shell, menu integration, file
dialogs, and save/export commands live in apps/desktop/src-tauri.
Native desktop support currently includes:
- Windows and macOS builds through Tauri
- Native open/save dialogs for
.jfffiles - PNG export through the native save dialog
- Native app menu actions bridged into the Vue editor
Native Windows and macOS installers are published as GitHub Release assets from this repository.
Version 0.3.0 is published automatically after a push or merge to master.
The release can also be re-run manually from the GitHub Actions page.
The Desktop native releases workflow builds:
- Windows x64 installers on
windows-latest - macOS universal installers for Intel and Apple Silicon on
macos-latest
The generated .msi, .exe, and .dmg files are attached to
the v0.3.0 GitHub Release. If the workflow is re-run, it updates the release
notes and replaces its assets.
See the release runbook for required signing secrets, quality gates, checksums, and signature verification.
Windows Authenticode signing and Apple Developer ID signing/notarization are applied when their complete credential sets are configured in GitHub Actions. Otherwise, the workflow publishes unsigned Windows installers and an ad-hoc signed macOS installer.
jauto/
packages/
core/ — Domain models, graph operations, command/history system
jff/ — JFLAP .jff XML parser and serializer
simulator/ — Step-by-step automaton execution engine
file-io/ — Platform-agnostic file handling abstraction
ui/ — Shared Vue 3 components, composables, and stores
apps/
web/ — Browser application (Vue 3 SPA)
desktop/ — Native desktop application (Tauri)
src-tauri/ — Rust native shell, menu, and file commands
