Skip to content

Releases: Mullassery/TinyBridge

TinyBridge v0.6.3

Choose a tag to compare

@Mullassery Mullassery released this 18 Oct 18:56

What's new

  • Homebrew formula bump is now automated on release (RECHECK-061).
  • Add a file-sharing throughput harness (scripts/bench-fileio.sh) and docs/FILE_IO_BENCHMARK.md; the "~90% file I/O" / "1.5s boot" figures are explicitly unverified targets (RECHECK-062).
  • Linux 9p shared folders now warn loudly instead of pretending to mount (RECHECK-062).

TinyBridge v0.6.2

Choose a tag to compare

@Mullassery Mullassery released this 18 Oct 07:14

Real tinybridge logs (tails the daemon log at ~/Library/Logs/TinyBridge/tinybridged.log with --tail/--errors/--warnings/--follow); daemon now tees tracing to that file; documented the FFI Send/Sync invariant (RECHECK-004/010).

TinyBridge v0.6.1

Choose a tag to compare

@Mullassery Mullassery released this 26 Sep 18:26

Fixed

  • RwLock poisoning in the adapter scaffolding (tinybridge-core's macOS/Windows/Linux adapters and platform registry) could permanently wedge an adapter behind a panic — any panic while holding the lock poisoned it for every subsequent call. Now recovers via unwrap_or_else(|poisoned| poisoned.into_inner()) instead of propagating the panic. Covered by 4 new regression tests (one per file) that deliberately poison the lock and assert the adapter is still usable afterward.

Added (since v0.6.0)

  • OSS project scaffolding: .github/dependabot.yml, a cargo audit CI job, CONTRIBUTING.md, CODE_OF_CONDUCT.md, ROADMAP_HONEST.md, issue/PR templates, docs/README.md index.

Changed

  • Corrected stale test-count claims in README.
  • SECURITY.md no longer claims a nonexistent security team or SLA.

See CHANGELOG.md for the full list.

TinyBridge v0.6.0

Choose a tag to compare

@Mullassery Mullassery released this 30 Aug 08:52

Fixes

  • tinybridge-vmhost no longer dyld-crashes on launch. The binary loads
    libTinyBridgeVZBridge.dylib via @rpath but shipped with no LC_RPATH
    at all in every prior release, so it aborted immediately with
    Library not loaded: @rpath/libTinyBridgeVZBridge.dylib unless you
    manually set DYLD_LIBRARY_PATH. Reported in #2. Fixed by embedding
    @executable_path/@loader_path rpaths at link time
    (crates/tinybridge-vmhost/build.rs) — verified with otool -l and by
    running the packaged binary from a clean directory with no env vars set.
  • CI no longer silently skips 9 tinybridge-daemon tests that were marked
    as "known pre-existing failures" — they pass now (194/194) and are back
    in the gate so a future regression there fails CI again.

What's new since v0.5.1

  • Guest boot to a real login prompt now works end-to-end, with
    cloud-init-provisioned credentials — see README's "Honest status" /
    "The actual fix" sections for the full story (wrong kernel was the real
    blocker, not the earlier-suspected Virtualization.framework regression).
  • PID-lock orphaned-process registry + runtime virtualization/CPU-extension
    diagnostics (kern.hv_support).
  • Fixed device double-allocation, a JSON-RPC error code boundary bug, and
    OKF status calculation.
  • CI runner moved to macos-latest; ~50 real clippy warnings fixed (not
    suppressed) after unblocking a broken cargo fmt --check gate.

Honest status

Same caveats as before: macOS-only (no Windows/Linux hypervisor backend),
Apple Silicon only (no published Intel build), and this release's automatic
install path still doesn't bundle/auto-download a root filesystem image —
see README.md for the full, current picture.

See INSTALL.txt inside the tarball for manual install steps, or use the
Homebrew tap (mullassery/homebrew-tinybridge), updated separately for
this release.

v0.5.1

Choose a tag to compare

@Mullassery Mullassery released this 23 Aug 08:02

Fixes

CI has been red on every push since v0.5.0 because cargo fmt --check failed
on the first gate, before clippy or tests ever ran. Fixed, and fixing it
surfaced ~50 real pre-existing clippy warnings across tinybridge-core/-cli/
-daemon that clippy had also never gotten a chance to check -- all fixed for
real, not suppressed. Full test suite unchanged and re-verified: 396/396
(excluding daemon) + 185/194 daemon (9 pre-existing named skips).

No functional/behavioral changes in this release -- CI health and code
quality only. See README.md's "Honest status" section for the current,
accurate state of what's verified working vs. not.

v0.5.0 - Real VM lifecycle wiring

Choose a tag to compare

@Mullassery Mullassery released this 12 Aug 10:34

What changed

This is the first release where tinybridge-vmhost actually drives a real VM
through Apple's Virtualization.framework end-to-end, instead of a hardcoded
"status": "running". Full details in the commit history on this tag; short
version:

  • Fixed the Swift Virtualization.framework bridge, which did not actually
    compile as checked in (a stale prebuilt dylib had been committed from a
    different machine). It builds cleanly now (swift build -c release).
  • Wired the real VM lifecycle end-to-end: tinybridge-vmhost's
    VmController now constructs and drives a real tinybridge_vz::VirtualMachine
    for start/stop/force_stop/status, propagating real FFI errors instead of a
    fabricated "running" status. The daemon's VmManager now issues a real
    vmhost.start RPC (previously it only pinged status after a fixed sleep).
  • Found and fixed a real platform bug: Virtualization.framework dispatches
    callbacks onto the process's main GCD queue; a plain #[tokio::main]
    process silently hangs forever on every VM call. Fixed by running the async
    server on a background thread and dedicating the main thread to
    dispatch_main().
  • Verified end-to-end: built and ad-hoc-codesigned the real
    tinybridge-vmhost binary (with the com.apple.security.virtualization
    entitlement), ran it, and drove it over its real Unix-socket JSON-RPC
    protocol against a real downloaded ARM64 Linux kernel. Observed
    Stopped -> Running (with a detected NAT guest IP) -> Stopped.
  • Security hardening: real SHA-256 checksum verification for snapshot
    images and the rootfs-build script's downloads (both previously
    unverified), standardized safe-by-default (NAT) network mode, VM control
    socket permissions hardened to 0600, VirtioFS host-path scoping
    implemented and tested ahead of its FFI wiring.
  • Honest relabeling: Windows/Linux platform adapters (previously
    committed as "Phase 6.1/6.2/6.3 Implementation") are now explicitly
    documented as unimplemented scaffolding - they only ever mutated an
    in-memory HashMap and are not wired into anything.
  • CI: re-enabled the Swift build and brought tinybridge-vz and
    tinybridge-daemon into the tested set (previously skipped).
  • README/SECURITY.md rewritten to reflect all of the above accurately -
    including fixing a stated MIT license that contradicted the actual
    Proprietary LICENSE file, and removing references to a Homebrew tap and
    package-manager installs that don't exist.

What's NOT yet verified

Full guest OS boot to a login/SSH prompt. That requires a complete, real root
filesystem image, which this repository does not bundle or auto-download
today. The verification above used a real kernel and a placeholder disk
image, sufficient to prove the hypervisor genuinely boots and runs guest
code, not a full guest OS.

Distribution

There is no Homebrew tap, package manager entry, or crates.io publish for
this project (crates.io wouldn't be a good fit anyway - this is a Proprietary-
licensed application workspace with a macOS-only Swift/Virtualization.framework
dependency baked into several crates, not a set of general-purpose reusable
libraries). This GitHub Release is the actual distribution channel: a real,
built-from-this-tag macOS (Apple Silicon / arm64) binary tarball is attached
below, with SHA256SUMS included in the archive.

Build target note: the attached binary was built and tested on
Apple Silicon (arm64). An Intel (x86_64) build was not produced in this pass
(this development environment is Apple Silicon only) - build from source with
cargo build --release --target x86_64-apple-darwin if you need one.

TinyBridge v0.4.0

Choose a tag to compare

@Mullassery Mullassery released this 06 Aug 17:24

Production-ready virtual machine platform with cross-platform support for Windows, macOS, and Linux.

What's New

Core Features

  • Intelligent Multi-Tier Boot: Reach interactive shell in 1.5 seconds (Tier 1), full resources at 120 seconds (Tier 4)
  • Cross-Platform Abstraction: Single codebase runs natively on Windows (Hyper-V), macOS (Apple Virtualization), and Linux (KVM)
  • Production Hardening: Error recovery with automatic strategies, health monitoring, diagnostics
  • Native Performance: Platform-optimized hypervisor integration for each OS
  • Comprehensive Observability: OpenTelemetry with Jaeger tracing, Prometheus metrics

Platform Support

  • macOS: Apple Silicon (ARM64) and Intel x86_64, GPU acceleration via Metal
  • Windows: Build from source (Hyper-V required), detailed setup guides
  • Linux: x86_64 and ARM64, GPU/USB passthrough via VFIO

Documentation

  • Comprehensive README with platform-specific installation guides
  • Windows setup with Hyper-V prerequisites and troubleshooting
  • macOS setup with Homebrew and GPU acceleration
  • Configuration reference and CLI command documentation
  • Architecture guide and troubleshooting resources

Installation

macOS (Homebrew)

brew tap Mullassery/tinybridge
brew install tinybridge

macOS (Direct Binary - Apple Silicon)

Extract the .tar.gz file and add to PATH:

tar -xzf tinybridge-0.4.0-aarch64-apple-darwin.tar.gz
sudo mv tinybridge /usr/local/bin/

Windows (Build from Source)

git clone https://github.com/Mullassery/TinyBridge.git
cd TinyBridge
cargo build --release --bin tinybridge

Linux (Build from Source)

git clone https://github.com/Mullassery/TinyBridge.git
cd TinyBridge
cargo build --release --bin tinybridge
sudo cp target/release/tinybridge /usr/local/bin/

Getting Started

# Create a new Linux environment
tinybridge create ubuntu:22.04 --name dev-env

# Start the environment
tinybridge start dev-env

# SSH into the environment
tinybridge ssh dev-env

# Stop when done
tinybridge stop dev-env

Technical Highlights

  • 201 comprehensive tests with 9,648 lines of production code
  • 4-tier boot optimization: Tier 1 (SSH) 1.5s, Tier 2 (Usable) 5s, Tier 3 (API) 30s, Tier 4 (Full) 120s
  • Automatic resource management with CPU, memory, disk, and network enforcement
  • Graceful error recovery with retry, skip, downgrade strategies
  • Health monitoring with per-component tracking and automatic diagnostics
  • Platform abstraction layer with zero code duplication across Windows/macOS/Linux

Binaries

  • tinybridge: Main CLI tool for VM management
  • tinybridged: Daemon service for orchestration (optional)
  • tinybridge-vmhost: Direct hypervisor control utility

System Requirements

macOS

  • macOS 11.0 or later
  • 4GB+ available RAM
  • 20GB+ free disk space
  • Apple Silicon or Intel processor

Windows

  • Windows 10 Pro/Enterprise or Windows 11
  • Hyper-V enabled (BIOS + Windows feature)
  • 4GB+ available RAM
  • 20GB+ free disk space

Linux

  • Kernel 4.4+ with KVM support
  • libvirt installed
  • 4GB+ available RAM
  • 20GB+ free disk space

Known Limitations

  • Windows Hyper-V does not support GPU acceleration for Linux VMs (GPU only on macOS/Linux)
  • x86_64 macOS binaries available on request (currently aarch64 provided)
  • WSL2 not supported (use TinyBridge for better isolation and resource management)

Support & Documentation

Contributors

Built with Rust, leveraging native virtualization frameworks:

  • Windows: Hyper-V technology stack
  • macOS: Apple Virtualization Framework
  • Linux: KVM and QEMU ecosystem
  • Observability: OpenTelemetry standards

TinyBridge v0.3.1 - Metal GPU Support

Choose a tag to compare

@Mullassery Mullassery released this 27 Jul 15:32

Release with Metal GPU acceleration support.

New Features

  • Metal GPU acceleration (auto-allocated from Mac memory)
  • GPU memory scaling: tinybridge update --gpu-memory 16
  • Automatic GPU detection on Apple Silicon

Existing Features

  • Full VM lifecycle management (suspend/resume/snapshots)
  • Dual-mode GUI (attach/detach without restart)
  • Automatic SSH with key-based auth
  • Resource management (CPU/memory/disk scaling)
  • Snapshots for checkpoint/restore workflows

GPU Usage

# Create with GPU
tinybridge up ml-training --gpu true --gpu-memory 8

# Scale GPU later
tinybridge update ml-training --gpu-memory 16

# ML workloads use GPU via Metal
tinybridge ssh ml-training
ubuntu@ml-training:~$ python3 train.py  # Auto-uses GPU

Installation

brew tap Mullassery/tinybridge https://github.com/Mullassery/homebrew-tinybridge.git
brew install tinybridge tinybridged

TinyBridge v0.3.0

Choose a tag to compare

@Mullassery Mullassery released this 27 Jul 15:14

Production release: Full VM lifecycle management (suspend/resume/snapshots), resource scaling, dual-mode GUI support.

Features

  • Suspend/resume VM (preserves state)
  • Graceful shutdown and restart
  • Create/restore snapshots
  • Scale CPU/memory/disk dynamically
  • Attach/detach desktop on demand
  • Auto-starting daemon via Homebrew

Installation

brew tap Mullassery/tinybridge https://github.com/Mullassery/homebrew-tinybridge.git
brew install tinybridge tinybridged

TinyBridge v0.1.0 - Initial Release

Choose a tag to compare

@Mullassery Mullassery released this 26 Jul 00:50

Initial TinyBridge release with core functionality, daemon, and CLI.