Core libraries
Start with the reusable surface
Gestura becomes easier to learn when the public libraries are presented as the main product for developers. The CLI and GUI are important consumers of those libraries, but they are not the best mental model for third-party adopters.
Public facade
Start with the stable core facade so downstream apps have one durable import surface. Treat it as the front door for embedders.
Example: gestura-core as the main public library entry point.
Domain crates
Break responsibilities into focused crates for pipeline, tools, sessions, protocols, knowledge, and other domains so adopters can go deeper only when needed.
Use the facade by default; drop into gestura-core-* crates for specialized work.
Application shells
Keep CLI and GUI layers thin. They matter for product delivery, but they should not be the first stop for developers trying to reuse the platform in their own apps.
This portal is intentionally library-first rather than shell-first.
How to read the library stack
- Start with the stable facade and its crate-level documentation.
- Identify the domain you need: tools, sessions, orchestration, protocols, or gesture foundations.
- Drop into the owning crate only when you need deeper types, traits, or extension points.
- Use examples and guides to understand composition before memorizing exact APIs.
Key principle
Public libraries should explain the platform more clearly than any shell app does. If contributors can only understand the architecture by reading the CLI or GUI, the documentation model is still backwards.
What belongs in manual docs vs Rustdoc
Manual docs
- • adoption paths
- • architecture stories
- • library relationships
- • practical workflows for open-source builders
Generated Rustdoc
- • exact types, traits, modules, and examples
- • public function and struct documentation
- • crate-level source-of-truth ownership boundaries
- • navigable re-exports and stable import paths