Contributing to Crux Daemon

July 29, 2026 · View on GitHub

Thank you for your interest in contributing to Crux Daemon.

Building from Source

git clone https://github.com/CueCrux/Crux.git
cd Crux
cargo build --release

The binaries are at target/release/corecruxd and target/release/corecruxctl.

Prerequisites

  • Rust stable (see rust-toolchain.toml)
  • protoc (Protocol Buffers compiler) — required by corecrux-proto

Running Tests

cargo test --workspace                    # All unit tests
./scripts/run-integration-tests.sh        # HTTP + gRPC + MCP integration tests

The helper builds corecruxd, exports CORECRUXD_BINARY, and then runs the integration crate. You can still invoke Cargo directly if you want, but then you need to build the daemon binary first:

cargo build --bin corecruxd
CORECRUXD_BINARY=target/debug/corecruxd cargo test -p crux-integration-tests

Code Style

  • Run cargo fmt before committing
  • Run cargo clippy --workspace -- -D warnings and fix all warnings
  • Follow existing patterns in the codebase

Contribution Types

We welcome:

  • Bug fixes with a clear description of the issue and how you verified the fix
  • Corrections to documentation or code comments
  • Performance improvements with benchmark evidence
  • Test coverage improvements

Pull Request Process

  1. Fork the repository
  2. Create a feature branch from main
  3. Make your changes with clear, descriptive commits
  4. Ensure cargo fmt, cargo clippy, and cargo test all pass
  5. Open a pull request with a description of what changed and why

Changelog

When making user-facing changes, add an entry to the [Unreleased] section of CHANGELOG.md:

  • ### Added — new features
  • ### Fixed — bug fixes
  • ### Changed — behavior changes
  • ### Security — vulnerability fixes

Licence

Crux Daemon is licensed under the Apache License, Version 2.0. Contributions are inbound=outbound: by submitting a contribution you agree it is licensed under Apache-2.0, per section 5 of the licence ("Submission of Contributions"), and you confirm you have the right to submit it. There is no separate CLA to sign, and you keep your own copyright. See LICENSE for details.

New source files should carry the standard header:

// Copyright (c) 2026 CueCrux Ltd.
// SPDX-License-Identifier: Apache-2.0
// Licensed under the Apache License, Version 2.0.
// See LICENSE in the repository root.

./scripts/check-licence-headers.sh enforces this on every .rs under crates/ and runs in CI.