systemless 0.12.1

High-Level Emulation for classic Macintosh applications
Documentation
[package]
name = "systemless"
version = "0.12.1"
edition = "2021"
rust-version = "1.93"
# Emulator code is GPL-3.0-or-later; the bitmap font artwork in
# src/quickdraw/fonts/pixel_font/ is additionally under OFL-1.1 (see OFL.txt).
license = "GPL-3.0-or-later AND OFL-1.1"
description = "High-Level Emulation for classic Macintosh applications"
readme = "README.md"
keywords = ["macintosh", "emulator", "68k", "hle", "quickdraw"]
categories = ["emulators", "rendering", "game-development"]
repository = "https://github.com/benletchford/systemless"
documentation = "https://docs.rs/systemless"
# `cargo run` (no `--bin`) routes to the GUI runner for local checkouts.
default-run = "systemless"

[dependencies]
clap = { version = "4.5", features = ["derive"] }
m68k = { version = "0.7.1", features = ["jit"] }
thiserror = "2"
tracing = "0.1"
serde = { version = "1", features = ["derive"] }
serde_json = "1"

# Windowing (optional, for graphical runner)
winit = { version = "0.30", optional = true }
softbuffer = { version = "0.4", optional = true }
image = { version = "0.25", default-features = false, features = ["png"] }
cpal = { version = "0.15", optional = true }
stuffit = "0.1.5"
hfs-reader = "0.1.1"
hfsplus = "0.2.4"

# Pure-Rust math library for cross-platform deterministic transcendentals
libm = "0.2"

[features]
default = ["gui"]
gui = [
    "winit",
    "softbuffer",
    "cpal",
    "dep:objc2",
    "dep:objc2-foundation",
    "dep:objc2-app-kit",
    "dep:objc2-metal",
    "dep:objc2-quartz-core",
]
# Exposes `scripted_traces`, deterministic trap-replay test scaffolding.
# Off by default so it stays out of the published public API and docs.
test-support = []

[target.'cfg(target_os = "macos")'.dependencies]
objc2 = { version = "0.5.2", optional = true }
objc2-app-kit = { version = "0.2.2", optional = true, features = ["NSApplication", "NSBitmapImageRep", "NSCell", "NSGraphics", "NSImage", "NSImageRep", "NSMenu", "NSMenuItem"] }
objc2-foundation = { version = "0.2.2", optional = true, features = ["NSGeometry", "NSObject", "NSProcessInfo", "NSString"] }
objc2-metal = { version = "0.2.2", optional = true, features = [
    "MTLBuffer",
    "MTLCommandBuffer",
    "MTLCommandEncoder",
    "MTLCommandQueue",
    "MTLDevice",
    "MTLDrawable",
    "MTLLibrary",
    "MTLPixelFormat",
    "MTLRenderCommandEncoder",
    "MTLRenderPass",
    "MTLRenderPipeline",
    "MTLResource",
    "MTLTexture",
    "MTLTypes",
] }
objc2-quartz-core = { version = "0.2.2", optional = true, features = [
    "CATransaction",
    "CALayer",
    "CAMetalLayer",
    "objc2-metal",
] }

[[bin]]
name = "systemless"
required-features = ["gui"]

[dev-dependencies]
hfsplus = { version = "0.2.4", features = ["testutil"] }
tempfile = "3"

# The 68k interpreter is the dominant hot path; fat LTO + a single
# codegen unit let the optimizer inline across crates, which is worth
# the longer build time.
[profile.release]
lto = "fat"
codegen-units = 1