RustFig is xfig rebuilt in Rust: the classic vector drawing program, native on Windows, macOS and Linux and in the browser, with no X server or XQuartz, fig2dev and LaTeX built in.
翻訳待ち
デザインRust · HTMLGitHub @FabianHassler接続状況の再確認が必要です所有者未確認
Have you tried it? One tap is enough. No sign-in needed.
xfig for today's computers: the classic vector drawing program in Rust for macOS, Windows, Linux and the web, with fig2dev and LaTeX built in
翻訳待ち
Loading the full README.
Read the full README ↗xfig for today's computers. The classic vector drawing program, rebuilt in Rust for macOS, Windows, Linux and the web, with fig2dev built in: a modern xfig that runs natively on Windows and macOS, with no X server, XQuartz or WSL.
Website: https://fabianhassler.github.io/rustfig/ (overview, downloads, the manual, a comparison with xfig and other programs, and the web app).
.fig files: RustFig opens every Fig version and saves Fig 3.2 that
xfig and fig2dev read unchanged.fig2dev command line comes along.Download RustFig
for macOS, Windows or Linux, or install it with Homebrew; see
Installation. Or try it in your browser,
nothing to install (a preview: drawings stay in your browser until you save
them as a download, and a few exports need the desktop app). The drawing above is
docs/images/rustfig-window.fig.
Each release on the Releases page has ready-made apps (not yet signed by Apple or Microsoft):
| System | File | How |
|---|---|---|
| macOS (Apple silicon) | RustFig-VERSION-macos.dmg | Drag RustFig to Applications. The app is not notarized by Apple yet, so the first start is refused: open System Settings > Privacy & Security and click Open Anyway (or run xattr -dr com.apple.quarantine /Applications/RustFig.app once). .fig files then open with a double-click. |
| Windows | rustfig-VERSION-windows.zip | Unpack anywhere and start rustfig.exe. fig-association.reg makes .fig files open in RustFig. Or with Scoop: scoop install https://raw.githubusercontent.com/FabianHassler/rustfig/main/packaging/scoop/rustfig.json |
| Linux (x86-64 and ARM64) | .deb or .tar.gz | sudo apt install ./rustfig_VERSION_amd64.deb (_arm64.deb on ARM, e.g. a Linux VM on an Apple-silicon Mac), or unpack the .tar.gz and run install.sh; both register the .fig file type. The .deb leaves the name fig2dev to Debian's fig2dev package: run RustFig's as rustfig fig2dev …. |
The tap FabianHassler/homebrew-tap
builds rustfig and rustfig-cli from source (rustfig fig2dev … runs
fig2dev's command line); fig2dev-rs adds a plain fig2dev command.
brew install fabianhassler/tap/rustfig
brew install fabianhassler/tap/fig2dev-rs # optional: `fig2dev`
Update with brew upgrade rustfig, remove with
brew uninstall rustfig. Homebrew's own fig2dev formula (the C program)
installs the same command name as fig2dev-rs: keep one of them linked.
Rust 1.92 or newer from rustup (rustup update
brings an older one up to date).
Linux only: the libraries the window system needs, e.g. on Debian/Ubuntu:
sudo apt install pkg-config libgtk-3-dev libxkbcommon-dev libwayland-dev \
libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev
macOS and Windows need nothing extra.
Install both programs (rustfig, the drawing program, and
rustfig-cli, the command line) straight from GitHub, the latest release:
cargo install --locked --git https://github.com/FabianHassler/rustfig --tag v0.9.0-beta.11 rustfig rustfig-cli
Leave out --tag … for the latest main. RustFig is not on crates.io
(a plain cargo install rustfig does not work); the --git line builds
the same program. Cargo fetches fig2dev, the converter RustFig exports
through, by itself.
Or from a clone:
git clone https://github.com/FabianHassler/rustfig
cd rustfig
cargo install --locked --path apps/rustfig
cargo install --locked --path apps/cli
The programs go into ~/.cargo/bin (Windows: %USERPROFILE%\.cargo\bin),
which rustup puts on your PATH. Update later by rerunning the --git line
with a newer --tag (or --force for main), or with git pull and the two
--path lines; remove with cargo uninstall rustfig rustfig-cli.
This is the beginning of the README. Read the rest at the original. Read the full README ↗