Contributing
Wayland Core is an Apache-2.0 Rust project. This page is an orientation. The authoritative source is CONTRIBUTING.md in the engine repository, and the code lives at github.com/ferroxlabs/wayland.
Workspace layout
Section titled “Workspace layout”The engine is a Cargo workspace split across many focused crates. The two families are:
wcore-*: the engine internals (for examplewcore-cli,wcore-providers,wcore-tools,wcore-mcp,wcore-memory,wcore-skills,wcore-evolve,wcore-permissions,wcore-sandbox,wcore-swarm, one crate per built-in channel such aswcore-channel-slack).wayland-*: higher-level integrations (for examplewayland-browser,wayland-ijfw,wayland-ollama).
Keeping responsibilities in separate crates is deliberate: each crate is small enough to understand and test on its own.
Build and test
Section titled “Build and test”cargo build --release # build the enginecargo test # run the test suiteThe binary lands at target/release/wayland-core.
Conventions
Section titled “Conventions”A few conventions matter when you send a change:
- Security-critical dependency pinning. Some dependencies are exact-pinned for security. Do not loosen a pinned version. When you bump one, follow the documented procedure in
CONTRIBUTING.md, and only add a new exact-pin when the dependency sits on the security boundary. - Keep changes scoped to the crate they belong in, and add tests alongside the code they cover.
- Match the existing style in the crate you are editing.
Where to start
Section titled “Where to start”Read docs/architecture.md for the engine’s structure, then the crate closest to your change. For a behavior question, the docs/ directory documents most subsystems (providers, tools, MCP, skills, memory, workflows, evolution).