# offerrall > Libraries by offerrall. Every page of https://offerrall.github.io as markdown, for agents: each library's README and docs, at the release the site shows. The first section is the site itself; each one after it is a library. Its first link is its README, with its version, group, install command, repository and the exact versions it pins of the other libraries here; the rest are its docs, in reading order. The same index as HTML: https://offerrall.github.io/doc/ Every library here, in Python, C or C++, follows the same rules, and a new one must too: its name, its releases, its metadata (`pyproject.toml`, or `CMakeLists.txt` and the README's `## Dependencies`) and the shape of its README and docs. The site checks them at each library's latest release, and a library joins it when it follows them and is added to `site.toml` in https://github.com/offerrall/offerrall.github.io. ## The site - [The rules and how the site works](https://offerrall.github.io/doc/site.md): the README of https://github.com/offerrall/offerrall.github.io, the rules every library follows first. ## pycodecad - [pycodecad 1.2.3](https://offerrall.github.io/doc/pycodecad/index.md): 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. - [Getting started](https://offerrall.github.io/doc/pycodecad/getting-started.md): a first part, run, save, export - [The window](https://offerrall.github.io/doc/pycodecad/window.md): layout, Run and Save, folders, read-only mode, the 3D view, shortcuts - [Parameters](https://offerrall.github.io/doc/pycodecad/parameters.md): `expose()`, its controls and `--set` - [Scripts](https://offerrall.github.io/doc/pycodecad/scripts.md): `show`, `clear`, `frame` (animations), `import_mesh`, paths, errors - [Command line](https://offerrall.github.io/doc/pycodecad/cli.md): `examples`, `check`, `render`, `export`, `context`, exit codes - [Working with an AI assistant](https://offerrall.github.io/doc/pycodecad/ai.md): the AI context and how an assistant checks its work - [Files pycodecad writes](https://offerrall.github.io/doc/pycodecad/files.md): everything pycodecad writes, and where - [Embedding pycodecad in your app](https://offerrall.github.io/doc/pycodecad/embedding.md): the window's parts in your own app (experimental) - [Design](https://offerrall.github.io/doc/pycodecad/design.md): the principles and what follows from them - [Limitations](https://offerrall.github.io/doc/pycodecad/limitations.md): platforms, graphics and Python requirements, what is not supported - [Development](https://offerrall.github.io/doc/pycodecad/development.md): tests, type checks and releases - [Benchmarks](https://offerrall.github.io/doc/pycodecad/benchmarks.md): measuring a Run and the window's drawing, with reference numbers - [Changelog](https://offerrall.github.io/doc/pycodecad/changelog.md): the changes of every release ## pygrbl-streamer - [pygrbl-streamer 1.0.5](https://offerrall.github.io/doc/pygrbl-streamer/index.md): 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`. - [Connections](https://offerrall.github.io/doc/pygrbl-streamer/connections.md): serial settings, handshakes, homing, retries and receive-buffer size - [Streaming](https://offerrall.github.io/doc/pygrbl-streamer/streaming.md): files and generators, progress, flow control, pause, resume and stop - [API](https://offerrall.github.io/doc/pygrbl-streamer/api.md): methods, callbacks, logging, state and troubleshooting - [Limitations](https://offerrall.github.io/doc/pygrbl-streamer/limitations.md): unsupported controllers, machine caveats and recovery boundaries - [Releasing](https://offerrall.github.io/doc/pygrbl-streamer/releasing.md): CI, PyPI trusted publishing and the release steps - [Changelog](https://offerrall.github.io/doc/pygrbl-streamer/changelog.md): the changes of every release ## pygrbl-build - [pygrbl-build 1.0.4](https://offerrall.github.io/doc/pygrbl-build/index.md): 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`. - [Raster](https://offerrall.github.io/doc/pygrbl-build/raster.md): Line-to-Line and Jarvis engraving, and the image inputs they accept - [Vector](https://offerrall.github.io/doc/pygrbl-build/vector.md): SVG to G-code, image to G-code outlines, and image to SVG - [Bounds and framing](https://offerrall.github.io/doc/pygrbl-build/framing.md): the bounding box of any G-code, and a framing pass around it - [Limitations](https://offerrall.github.io/doc/pygrbl-build/limitations.md): what each algorithm does not do, and the platforms with prebuilt wheels - [Releasing](https://offerrall.github.io/doc/pygrbl-build/releasing.md): CI, PyPI trusted publishing and the release steps - [Changelog](https://offerrall.github.io/doc/pygrbl-build/changelog.md): the changes of every release ## pyeasydeploy - [pyeasydeploy 1.0.4](https://offerrall.github.io/doc/pyeasydeploy/index.md): 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. - [Guide](https://offerrall.github.io/doc/pyeasydeploy/guide.md): connecting, remote Python, venvs and packages, files and services - [Reference](https://offerrall.github.io/doc/pyeasydeploy/reference.md): every public name, its arguments and what it does - [Reproducibility](https://offerrall.github.io/doc/pyeasydeploy/reproducibility.md): what a deploy guarantees, what it does not, and orphan services - [Design](https://offerrall.github.io/doc/pyeasydeploy/design.md): the ideas behind it, and what it is not - [Releasing](https://offerrall.github.io/doc/pyeasydeploy/releasing.md): the release workflow and the one-time PyPI setup - [Changelog](https://offerrall.github.io/doc/pyeasydeploy/changelog.md): the changes of every release ## pytypehint - [pytypehint 1.2.3](https://offerrall.github.io/doc/pytypehint/index.md): 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, pyeasydeploy, pytypehintstore, pytypehintweb. - [Immutable models](https://offerrall.github.io/doc/pytypehint/immutable.md): the `@immutable` contract, allowed fields, reuse and Python behavior - [Types and API](https://offerrall.github.io/doc/pytypehint/vocabulary.md): which hints compile to which shapes, and the public API - [Atoms](https://offerrall.github.io/doc/pytypehint/atoms.md): constraints and notation per shape, file names, layering and extras - [Build](https://offerrall.github.io/doc/pytypehint/build.md): validating and constructing instances or keyword arguments, union selection and errors - [Resolve](https://offerrall.github.io/doc/pytypehint/resolve.md): validated dictionaries with defaults filled at the current level - [Decode](https://offerrall.github.io/doc/pytypehint/decode.md): restoring portable values such as dates, enums and tuples before validation - [Tuples](https://offerrall.github.io/doc/pytypehint/tuples.md): fixed, variadic and empty tuples and the `Tuple` shape - [Defaults](https://offerrall.github.io/doc/pytypehint/defaults.md): certification and rematerialization of default values - [Portable contract](https://offerrall.github.io/doc/pytypehint/contract.md): the JSON-compatible schema document returned by `to_dict()` - [Limits](https://offerrall.github.io/doc/pytypehint/limits.md): rejected definitions, option identity and runtime limits - [Design](https://offerrall.github.io/doc/pytypehint/design.md): what the core owns, what consumers own, and why - [Changelog](https://offerrall.github.io/doc/pytypehint/changelog.md): the changes of every release ## pytypehintstore - [pytypehintstore 1.0.3](https://offerrall.github.io/doc/pytypehintstore/index.md): 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. - [The guarantee](https://offerrall.github.io/doc/pytypehintstore/guarantee.md): every row a store opens was rebuilt through your schema - [The identity](https://offerrall.github.io/doc/pytypehintstore/identity.md): the file name, and why any change to the class is a new database - [The file](https://offerrall.github.io/doc/pytypehintstore/file.md): the JSON on disk, editing it by hand, and every load error - [Writing](https://offerrall.github.io/doc/pytypehintstore/writing.md): debounced, atomic dumps, rotated copies and `close()` - [The lock](https://offerrall.github.io/doc/pytypehintstore/lock.md): one process per store, and how orphaned lockfiles are taken over - [API](https://offerrall.github.io/doc/pytypehintstore/api.md): `store_of`, its methods and its exceptions - [Limits](https://offerrall.github.io/doc/pytypehintstore/limits.md): what the store does not do, stated plainly - [Changelog](https://offerrall.github.io/doc/pytypehintstore/changelog.md): the changes of every release ## pytypehintweb - [pytypehintweb 1.2.3](https://offerrall.github.io/doc/pytypehintweb/index.md): 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. - [Getting started](https://offerrall.github.io/doc/pytypehintweb/getting-started.md): one complete form, from a Python function to the built result - [Plan contract](https://offerrall.github.io/doc/pytypehintweb/plan.md): the plan format, every property, default and invariant - [Python API](https://offerrall.github.io/doc/pytypehintweb/python.md): `plan_of()`, `decode()`, `WebConfig` and how each annotation maps to a node - [JavaScript API](https://offerrall.github.io/doc/pytypehintweb/javascript.md): `compileForm()`, widgets, reading, accessibility, styling and themes - [Architecture](https://offerrall.github.io/doc/pytypehintweb/architecture.md): the layers and which layer owns each rule - [Limitations](https://offerrall.github.io/doc/pytypehintweb/limitations.md): what a plan cannot represent and why - [Testing](https://offerrall.github.io/doc/pytypehintweb/testing.md): how to run the suites, what they guarantee, and CI and release - [Changelog](https://offerrall.github.io/doc/pytypehintweb/changelog.md): the changes of every release ## func-to-web - [func-to-web 2.7.6](https://offerrall.github.io/doc/func-to-web/index.md): 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. - [Getting started](https://offerrall.github.io/doc/func-to-web/getting-started.md): `run()`, several functions, FastAPI, the options and the examples - [Types and validation](https://offerrall.github.io/doc/func-to-web/types.md): what a parameter can be, and its constraints - [Files](https://offerrall.github.io/doc/func-to-web/files.md): file parameters, uploads and how long files are kept - [Outputs](https://offerrall.github.io/doc/func-to-web/outputs.md): text, tables, images and downloads - [Prefill and OpenForm](https://offerrall.github.io/doc/func-to-web/prefill.md): forms that open filled in, and functions that open other forms - [HTTP API](https://offerrall.github.io/doc/func-to-web/http.md): `/invoke`, streaming and `/doc` - [sdk.js](https://offerrall.github.io/doc/func-to-web/sdk.md): calling a space and opening its forms from your own frontend - [Security and limits](https://offerrall.github.io/doc/func-to-web/security.md): what FuncToWeb guarantees, and what is up to you - [Changelog](https://offerrall.github.io/doc/func-to-web/changelog.md): the changes of every release ## wgpupixel - [wgpupixel 1.0.1](https://offerrall.github.io/doc/wgpupixel/index.md): GPU image engine for editors: layers, selections, brushes, adjustments, filters and transforms, with WebGPU. Group: Images. Language: C++23, built with CMake. Install: `FetchContent_Declare(wgpupixel GIT_REPOSITORY https://github.com/offerrall/wgpupixel GIT_TAG v1.0.1)` then `FetchContent_MakeAvailable(wgpupixel)`, then link `wgpupixel::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). - [Guide](https://offerrall.github.io/doc/wgpupixel/guide.md): objects, pixels, coordinates, selections, layers, painting, memory and the viewport - [Operations](https://offerrall.github.io/doc/wgpupixel/operations.md): every GPU operation, with its real result - [Programs](https://offerrall.github.io/doc/wgpupixel/programs.md): transfers, files, memory, typography and presentation, as complete programs - [Build](https://offerrall.github.io/doc/wgpupixel/build.md): requirements, CMake, the browser and compatibility - [Changelog](https://offerrall.github.io/doc/wgpupixel/changelog.md): the changes of every release