Skip to content

alsatianco/binturong

Repository files navigation

Binturong

License: MIT

An offline-first desktop developer utility suite — encoding, hashing, formatting, image tools, and more — all running locally with no network required.

Built with Tauri 2, Rust, React 19, TypeScript, and Tailwind CSS 4.

Donation

If Binturong is useful to you and you'd like to support its upkeep, you can buy me a coffee.

Prerequisites

Tool Version Notes
Node.js LTS Frontend build
Rust stable Backend build via Cargo

Platform-specific dependencies are listed in the Building section.

Development

npm install                # install JS dependencies
npm run tauri dev          # run desktop app in dev mode
npm run dev                # run frontend only (browser)

Testing

npm run test:ui            # frontend unit/UI tests (vitest)
npm run test:coverage      # frontend tests with coverage
cargo test --manifest-path src-tauri/Cargo.toml  # Rust tests

Building

Build a production desktop executable:

npm install
npm run tauri build

Build output for all platforms:

  • Executable: src-tauri/target/release/binturong (.exe on Windows)
  • Bundles: src-tauri/target/release/bundle/

Linux (Ubuntu/Debian)

Install system dependencies, then build:

sudo apt-get update && sudo apt-get install -y \
    libwebkit2gtk-4.1-dev libgtk-3-dev \
    libayatana-appindicator3-dev librsvg2-dev patchelf

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh  # if Rust is not installed
source ~/.cargo/env

npm run tauri build -- --bundles appimage,deb,rpm

macOS

Requires Xcode (open it once to complete initial setup):

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh  # if Rust is not installed
source ~/.cargo/env

npm run tauri build -- --bundles dmg

Note: Local builds are unsigned unless Apple signing credentials are configured.

Windows

Requires Microsoft C++ Build Tools with "Desktop development with C++" enabled. Edge WebView2 is pre-installed on Windows 10 1803+ and Windows 11.

# Install Rust via rustup-init.exe from https://rustup.rs/ if not available

# Optional: for MSI/NSIS installer bundles
choco install -y nsis wixtoolset

npm run tauri build -- --bundles msi,nsis

Note: If MSI packaging fails with light.exe errors, ensure the Windows VBScript feature is enabled.

CI/CD

Workflow File Trigger
Installers .github/workflows/build-installers.yml v* tag push or manual workflow_dispatch
Test Matrix .github/workflows/ci-test-matrix.yml Push / PR
RC QA .github/workflows/release-candidate-qa.yml Manual

Installer artifacts: .dmg (macOS), .msi / .exe (Windows), .AppImage / .deb / .rpm (Linux)

Run local RC QA: ./scripts/release_candidate_qa.sh

Code Signing

Builds are unsigned by default. To enable macOS signing and notarization, set these GitHub repository secrets:

APPLE_CERTIFICATE, APPLE_CERTIFICATE_PASSWORD, APPLE_SIGNING_IDENTITY, APPLE_ID, APPLE_PASSWORD, APPLE_TEAM_ID

Package Managers

Manifests live under packaging/: Homebrew cask, Winget, Snap, and Flatpak.

Performance Benchmarks

cargo run --manifest-path src-tauri/Cargo.toml --release --bin perf-bench

Results are written to docs/performance-bench.csv.

License

MIT

Privacy/Security Checks

  • Run policy checks with:
    • ./scripts/privacy_security_check.sh
  • Validation artifact:
    • docs/privacy-security-validation.md

Dependency/License Audit

  • Run dependency and license checks with:
    • ./scripts/dependency_license_audit.sh
  • Validation artifacts:
    • docs/dependency-license-audit.md
    • docs/bundled-assets.tsv

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors