Skip to content

Latest commit

 

History

103 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JAuto

Modern, open-source replacement for JFLAP 7.1 — a tool for experimenting with formal languages and automata.

Features (MVP)

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 .jff files (JFLAP 7.1 format)
  • Cross-platform — runs in the browser and as a native desktop app (Windows, macOS)

Tech Stack

  • TypeScript, Vue 3, Vite
  • Tauri 2 (native desktop shell for Windows and macOS)
  • pnpm workspaces + Turborepo (monorepo)

Getting Started

Prerequisites

  • Node.js >= 22
  • pnpm 11.x (the repository pins 11.5.2)
  • Rust with Cargo for native desktop builds

Setup

pnpm install

Development

# Web app
pnpm dev:web

# Desktop app
pnpm dev:desktop

# Both
pnpm dev

Build

# 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 build

Test

pnpm test

Desktop App

The 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 .jff files
  • PNG export through the native save dialog
  • Native app menu actions bridged into the Vue editor

Desktop Downloads

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.

Project Structure

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

License

MIT

About

Modern, open-source replacement for JFLAP 7.1 — a tool for experimenting with formal languages and automata.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages