xpm

X-Pixmap & NetPBM

Pure Nim score 15/100 · tests present · no docs generated

Summary

Latest Version Unknown
License MIT
CI Status Failing
Downloads 0
Last Indexed 2026-07-22 05:28

Tags

Installation

nimble install xpm
choosenim install xpm
git clone https://github.com/juancarlospaco/xpm

OS Compatibility

Platform Linux macOS Windows FreeBSD OpenBSD NetBSD Android iOS WASM Embedded
xpm - - - - - - -

Source

Repository https://github.com/juancarlospaco/xpm
Homepage https://github.com/juancarlospaco/xpm
Registry Source nimble_official

README

X-Pixmap & NetPBM

  • Half the code is Tests, all functions are asserted.
  • Only uses system.nim, no imports, does not use std lib, easy to maintain.
  • runnableExamples with static: and doAssert.
  • Documentation with Examples and Links.
  • Works at compile-time, NimScript and JavaScript.
  • All functions are func, except 1 that does the I/O.
  • Tiny func of 3 ~ 5 lines, simple code, simple API.
  • Functionality can be extended with sequtils by the user.
  • Examples render 6 small fractals at compile-time to mimic a real-world like usage.
  • Only ~300 lines where half are test, 5 image formats.

Random example use cases

  • Generate Icons of arbitrary sizes instead of bundling them in binaries and installers.
  • Generate patterns on client-side browser instead of transferring them over internet.
  • Render QR codes, Bar codes, Icons, visual reports, simple diagrams for documentation, etc.
  • Plot charts with data of any kind on any target.
  • Anything image related, good addition to SVG and HTML that std lib already can do.

Format

Image format is loss-less and human-readable, UTF-8 but fits ASCII, is also valid C source code, can be embedded in C, supports millions of colors and transparency.

Links

  • Rust lang one https://docs.rs/image/latest/image/pnm/struct.PNMEncoder.html
  • Python also has a module to draw images on std lib.
  • Spec https://en.wikipedia.org/wiki/X_PixMap
  • Spec https://en.wikipedia.org/wiki/Netpbm_format

Examples with Std Lib only

fractalito

fractalito_hexaflake

fractals