Marcean Labs · Rust · United Kingdom

One job. One file. One binary each.

Command line tools for images, PDF pages and spreadsheets. Written in Rust, free to use, and checked byte for byte before each release.

Free · Apache 2.0 · Linux, Windows, macOS

bash ~/work
$ imgsmith IMG_4032.jpg --thumb 320 --strip -o thumb.jpg
2416x1604 → 319x212, 1.1 MB → 4 KB, 0.09s
$ pdfsurgeon info report.pdf
file: report.pdf
version: 1.5
pages: 970
encrypted: no
page size: 595 x 841 pt
$ pdfsurgeon select report.pdf --pages 1-3 -o brief.pdf
$

Three tools.

01

imgsmith

Resize, crop, rotate, convert and thumbnail images across fourteen formats, and read the camera data inside them.

$ cargo install imgsmith crates.io/crates/imgsmith
02

pdfsurgeon

Merge, split, select and rotate PDF pages. Removing a page leaves nothing pointing at it.

$ cargo install pdfsurgeon crates.io/crates/pdfsurgeon
03

xlsmith

Read Excel, OpenDocument and the old binary format. Write CSV or JSON, one sheet or all of them.

$ cargo install xlsmith crates.io/crates/xlsmith

Two files, four other tools.

PDF split · 970 pages · seconds, lower is better

pdfsurgeon1.02 s
qpdf3.71 s

Spreadsheet to CSV · 200,000 rows · seconds, lower is better

xlsmith0.89 s
xlsx2csv9.89 s
pandas21.20 s

Four cores, October 2026. The scripts that produce these figures are in each repository, so any number on this page can be re-run.

What is in the binary.

One file

No runtime, no installer and no config file. Copy the binary and run it.

Pure Rust

The parsers are memory-safe and the build needs no C toolchain.

Byte-stable

The same input and flags give the same bytes, checked on Linux, Windows and macOS before every release.

Fuzzed nightly

Each parser is fed malformed files every night, and a crash becomes a test.