Skip to content

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.

The engine is a Cargo workspace split across many focused crates. The two families are:

  • wcore-*: the engine internals (for example wcore-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 as wcore-channel-slack).
  • wayland-*: higher-level integrations (for example wayland-browser, wayland-ijfw, wayland-ollama).

Keeping responsibilities in separate crates is deliberate: each crate is small enough to understand and test on its own.

Terminal window
cargo build --release # build the engine
cargo test # run the test suite

The binary lands at target/release/wayland-core.

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.

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).