offerrall

Libraries by offerrall. This is the site for agents: each library's README and docs at the release the site shows, every page as markdown. The same index as markdown: /llms.txt.

The rules

Every library here follows these rules, and a new one must too: the site checks them at each library's latest release and does not build while one is broken. A library joins the site when it follows them and is added to site.toml with its group. How the site reads and shows the libraries: /doc/site.md, the README of the site's repository.

A library listed in site.toml follows all of these. A library with a pyproject.toml is a Python library; one with a CMakeLists.txt is a C or C++ library. Most rules hold for all of them; the metadata has its own rules for each.

# Name

# Release

# Python metadata (pyproject.toml)

# C and C++ metadata (CMakeLists.txt)

# Documentation

CNC, laser & CAD

pycodecad 1.2.3

Code-CAD with build123d: a desktop window that shows and exports what your Python script builds.

Group
CNC, laser & CAD
Language
Python >=3.12
Install
pip install pycodecad
Repository
https://github.com/offerrall/pycodecad
License
MIT
Dependencies
build123d>=0.13,<0.14
slimgui>=0.8.3,<0.9
glfw>=2.7,<3
moderngl>=5.10,<6
numpy>=1.26,<3
pytypehint==1.2.0
Uses
pytypehint ==1.2.0

pygrbl-streamer 1.0.5

Stream G-code to GRBL controllers over serial, with progress, pause/resume/stop and configurable connections.

Group
CNC, laser & CAD
Language
Python >=3.10
Install
pip install pygrbl-streamer
Repository
https://github.com/offerrall/PyGrbl_Streamer
License
MIT
Dependencies
pyserial>=3.5
  • Overview
  • Connections: serial settings, handshakes, homing, retries and receive-buffer size
  • Streaming: files and generators, progress, flow control, pause, resume and stop
  • API: methods, callbacks, logging, state and troubleshooting
  • Limitations: unsupported controllers, machine caveats and recovery boundaries
  • Releasing: CI, PyPI trusted publishing and the release steps
  • Changelog: the changes of every release

pygrbl-build 1.0.4

Generate G-code for GRBL diode lasers from images and SVGs, with LaserGRBL-faithful output.

Group
CNC, laser & CAD
Language
Python >=3.10
Install
pip install pygrbl-build
Repository
https://github.com/offerrall/pygrbl_build
License
MIT
Dependencies
pillow>=11.3.0,<12
  • Overview
  • Raster: Line-to-Line and Jarvis engraving, and the image inputs they accept
  • Vector: SVG to G-code, image to G-code outlines, and image to SVG
  • Bounds and framing: the bounding box of any G-code, and a framing pass around it
  • Limitations: what each algorithm does not do, and the platforms with prebuilt wheels
  • Releasing: CI, PyPI trusted publishing and the release steps
  • Changelog: the changes of every release

Deployment

pyeasydeploy 1.0.4

Deploy Python apps to Linux servers over SSH, with plain functions on top of Fabric.

Group
Deployment
Language
Python >=3.11
Install
pip install pyeasydeploy
Repository
https://github.com/offerrall/pyeasydeploy
License
MIT
Dependencies
fabric>=3.0.0
pytypehint==1.2.1
Uses
pytypehint ==1.2.1
  • Overview
  • Guide: connecting, remote Python, venvs and packages, files and services
  • Reference: every public name, its arguments and what it does
  • Reproducibility: what a deploy guarantees, what it does not, and orphan services
  • Design: the ideas behind it, and what it is not
  • Releasing: the release workflow and the one-time PyPI setup
  • Changelog: the changes of every release

Types & forms

pytypehint 1.2.3

Compiles Python type hints into strict, inspectable, portable contracts

Group
Types & forms
Language
Python >=3.11
Install
pip install pytypehint
Repository
https://github.com/offerrall/pytypehint
License
MIT
Dependencies
none
Used by
pycodecad ==1.2.0
pyeasydeploy ==1.2.1
pytypehintstore ==1.0.0
pytypehintweb ==1.0.0
  • Overview
  • Immutable models: the @immutable contract, allowed fields, reuse and Python behavior
  • Types and API: which hints compile to which shapes, and the public API
  • Atoms: constraints and notation per shape, file names, layering and extras
  • Build: validating and constructing instances or keyword arguments, union selection and errors
  • Resolve: validated dictionaries with defaults filled at the current level
  • Decode: restoring portable values such as dates, enums and tuples before validation
  • Tuples: fixed, variadic and empty tuples and the Tuple shape
  • Defaults: certification and rematerialization of default values
  • Portable contract: the JSON-compatible schema document returned by to_dict()
  • Limits: rejected definitions, option identity and runtime limits
  • Design: what the core owns, what consumers own, and why
  • Changelog: the changes of every release

pytypehintstore 1.0.3

Rows of one validated dataclass, in memory, shadowed by a JSON file you can open and edit

Group
Types & forms
Language
Python >=3.11
Install
pip install pytypehintstore
Repository
https://github.com/offerrall/pytypehintstore
License
MIT
Dependencies
pytypehint==1.0.0
Uses
pytypehint ==1.0.0
  • Overview
  • The guarantee: every row a store opens was rebuilt through your schema
  • The identity: the file name, and why any change to the class is a new database
  • The file: the JSON on disk, editing it by hand, and every load error
  • Writing: debounced, atomic dumps, rotated copies and close()
  • The lock: one process per store, and how orphaned lockfiles are taken over
  • API: store_of, its methods and its exceptions
  • Limits: what the store does not do, stated plainly
  • Changelog: the changes of every release

pytypehintweb 1.2.3

Framework-free browser form layer for pytypehint

Group
Types & forms
Language
Python >=3.11
Install
pip install pytypehintweb
Repository
https://github.com/offerrall/pytypehintweb
License
MIT
Dependencies
pytypehint==1.0.0
Uses
pytypehint ==1.0.0
Used by
func-to-web ==1.2.0
  • Overview
  • Getting started: one complete form, from a Python function to the built result
  • Plan contract: the plan format, every property, default and invariant
  • Python API: plan_of(), decode(), WebConfig and how each annotation maps to a node
  • JavaScript API: compileForm(), widgets, reading, accessibility, styling and themes
  • Architecture: the layers and which layer owns each rule
  • Limitations: what a plan cannot represent and why
  • Testing: how to run the suites, what they guarantee, and CI and release
  • Changelog: the changes of every release

Web

func-to-web 2.7.6

Expose typed Python functions as web interfaces.

Group
Web
Language
Python >=3.11
Install
pip install func-to-web
Repository
https://github.com/offerrall/FuncToWeb
License
MIT
Dependencies
pytypehintweb==1.2.0
starlette==0.49.3
uvicorn==0.38.0
Uses
pytypehintweb ==1.2.0

Images

wgpupixel 1.0.1

GPU image engine for editors: layers, selections, brushes, adjustments, filters and transforms, with WebGPU

Group
Images
Language
C++23, built with CMake
Install
with CMake, then link wgpupixel::wgpupixel:
include(FetchContent)
FetchContent_Declare(wgpupixel GIT_REPOSITORY https://github.com/offerrall/wgpupixel GIT_TAG v1.0.1)
FetchContent_MakeAvailable(wgpupixel)
Repository
https://github.com/offerrall/wgpupixel
License
MIT
Dependencies
wgpu-native ==29.0.1.1 (bundled)
ffmpeg ==9.0.1 (bundled)
lcms2 >=2.16
zlib
liblzma
pangocairo >=1.56 (optional: WGPUPIXEL_BUILD_TEXT)
pangoft2 >=1.56 (optional: WGPUPIXEL_BUILD_TEXT)
cairo >=1.18.2 (optional: WGPUPIXEL_BUILD_TEXT)
fontconfig >=2.15 (optional: WGPUPIXEL_BUILD_TEXT)
freetype2 (optional: WGPUPIXEL_BUILD_TEXT)
harfbuzz >=2.6 (optional: WGPUPIXEL_BUILD_TEXT)
  • Overview
  • Guide: objects, pixels, coordinates, selections, layers, painting, memory and the viewport
  • Operations: every GPU operation, with its real result
  • Programs: transfers, files, memory, typography and presentation, as complete programs
  • Build: requirements, CMake, the browser and compatibility
  • Changelog: the changes of every release