pinstar 0.3.3

Terminal-based canvas editor for .canvas files
pinstar-0.3.3 is not a library.
Visit the last successful build: pinstar-1.1.3

pinstar

A terminal-based canvas editor compatible with the Obsidian .canvas JSON specification. Built with Rust and the Ratatui framework.

DISCLAIMER

pinstar is a sub project of clin-rs project, i separated it as a different project for those who only want to use/test this feature.

Features

  • Spec Compliance: Read, write, and manipulate CanvasData serializable schemas (text, file, link, and group nodes).
  • Interactive TUI: Pan, zoom, and navigate node relations inside the terminal using ratatui.
  • Inline Editing: Built-in node content modification via ratatui-textarea.
  • UUID Graph: Resilient node identification and edge resolution logic.

Technical Stack

  • Core Framework: Ratatui for terminal rendering.
  • Serialization: Serde JSON for compliant parsing of the .canvas spec.
  • Identifiers: uuid crate for RFC 4122 compliant node tracking.

Installation

Pre-built Packages

Pre-compiled binaries and system packages (.deb, .rpm, PKGBUILD) for Debian/Ubuntu, Fedora/RHEL, and Arch Linux distributions are available on the GitHub Releases page.

Via Cargo

You can install the crate directly from crates.io:

cargo install pinstar

Building from Source

Requires a standard Rust toolchain (MSRV 1.85 as specified in Cargo.toml).

cargo build --release