
tty7
tty7 is a fast, GPU-accelerated terminal workbench with persistent sessions, built-in input tools, SSH support, and coding agent awareness.
It provides a native Rust solution for cross-platform shader translation from Metal to Vulkan, filling a gap for developers needing to reuse Metal shaders on Vulkan backends without relying on external LLVM toolchain.
Alpha. This project is early and under active development. The public API, CLI flags, reflection layout details, and SPIR-V output may change without a stable semver guarantee while the crate is in the
0.xseries. Treat it as research-quality: useful for experimentation and integration pilots, not a frozen interface.
Translate Metal AIR (LLVM bitcode / sanitized .ll) to Vulkan SPIR-V using a native Rust
emitter. Production translation does not invoke LLVM llc.
OpCapability Shader / Logical GLSL450 SPIR-Vin → out.spv harnessesserde feature for reflection metadata JSON# CLI
cargo install metal2vulkan
# Library (Cargo.toml)
metal2vulkan = "0.1"
metal2vulkan --stage vertex|fragment|passthrough|kernel
# optional interface metadata JSON (requires --features serde)
metal2vulkan in.ll out.spv --stage kernel --emit-meta out.json
PASS, writes SPIR-V, exits 0FALLBACK, exits non-zeroOn failure the CLI writes a repro bundle under $TMPDIR/metal2vulkan-repros (override with
METAL2VULKAN_REPRO_DIR).
cargo run --example translate_native -- path/to/shader.ll kernel out.spv
use metal2vulkan::passes::Stage;
use std::path::Path;
fn translate_ll(sanitized_ll: &str) -> Result, String> {
let tmp = std::env::temp_dir().join("m2v-scratch");
std::fs::create_dir_all(&tmp).ok();
metal2vulkan::translate_sanitized_native(sanitized_ll, Stage::Kernel, Path::new(&tmp))
}
See crate docs (cargo doc --open), docs/ARCHITECTURE.md for the
pipeline, and docs/REFLECTION.md for how consumers read binding metadata
after a convert. Repository layout and the developer loop are in
CONTRIBUTING.md. How to stay confident while refactoring (harvest, hash ledgers,
A/B) is in docs/VALIDATION.md.
Grammar and lowering behavior is locked with synthetic Rust tests. This repository does not ship third-p
Translate Metal AIR / LLVM IR to Vulkan SPIR-V with a native Rust emitter
Similar projects matched by category, topics, and programming language.

tty7 is a fast, GPU-accelerated terminal workbench with persistent sessions, built-in input tools, SSH support, and coding agent awareness.
reims-vgpu is an experimental virtual GPU for macOS guests that uses QEMU to decode the guest's GPU command stream and execute it through Metal or Vulkan, leveraging the built-in AppleParavirtGPU driver without requiring custom kexts.
A Rust library that provides secure memory handling primitives including zeroization on drop, memory locking, constant-time comparison, and compile-time guarded regions, with zero dependencies and no_std support.