Developers

pundit is a Rust workspace under crates/, with a Slint user interface and GStreamer doing the video work. The design of the Linux app is written up in the Linux port design spec, and the conventions every change is held to — the zero-copy decode path, the capture clock, the export graph, the crate dependency rules — are in CLAUDE.md.

The crates

  • crates/pundit-core — pure logic: the project format, the playback timeline, zoom, and stroke replay. It declares no media dependency at all, and CI runs its tests on a machine with no GStreamer installed.
  • crates/pundit-media — everything GStreamer: the source player, capture, the export frame driver and the overlay rasterizer.
  • crates/pundit-app — the Slint user interface, the command bus and the event layer.
  • crates/pundit-harness — headless integration tests driven over the command bus.

API documentation

The rustdoc for each crate, built with private items included:

Building and design history

  • Build from source — the packages to install, and how to run the tests and build the .deb.
  • docs/superpowers/ — the specs, plans and measurement spikes behind every phase of the port, in date order.