Repository navigation
Project Templates
Copper ships templates to bootstrap new projects quickly. Use them to get a runnable task graph, logging setup, and basic app layout in minutes.
- Rust 1.95 or newer (rustup with the latest stable toolchain is recommended)
-
cargo-cunew:cargo install cargo-cunew - Optional for template development:
cargo-generate:cargo install cargo-generate - Optional:
justfor helper commands (see Task Automation with just)
| Template | Use it for |
|---|---|
project / cu_project
|
Single-crate project for quick experiments. |
workspace / cu_full
|
Multi-crate workspace with apps/ and components/. |
Generate a single-crate project:
cargo cunew my_project
cd my_project
cargo runGenerate a workspace:
cargo cunew --template workspace my_workspace
cd my_workspace
cargo run -p cu_example_appChoose a dependency source:
- default
--source crates.io: resolves the latest stable Copper crate versions from crates.io -
--source git: uses the Copper git repo, plus optional--git-branch,--git-tag, or--git-rev -
--source local --copper-root /path/to/copper-rs: points generated manifests at a local checkout
The template source of truth now lives under:
support/cargo_cunew/templates/
You can still use it directly with cargo-generate from a repo checkout:
cargo +stable generate \
--path support/cargo_cunew/templates/cu_project \
--name my_project \
--destination . \
--define copper_source=local \
--define copper_root_path=/absolute/path/to/copper-rsOr for the workspace template:
cargo +stable generate \
--path support/cargo_cunew/templates/cu_full \
--name my_workspace \
--destination . \
--define copper_source=local \
--define copper_root_path=/absolute/path/to/copper-rscd support/cargo_cunew/templates && just gen-projectcd support/cargo_cunew/templates && just gen-workspace
Generated host projects include just graph[-log] for topology and just sched[-log] for the generated process order and recorded timing. cargo-cunew asks whether the target is bare-metal/no_std; that choice omits host-only PGS helpers. Host templates also include pgs-baseline, pgs-optimize candidates=3, pgs-candidate candidate=1, and pgs-measure candidates=1. Tune the starter schedule.ron deadline, CPU set, and timing assumptions before using its ranking for a real application.
Both templates expose self-describing-logs = ["cu29/self-describing-logs"].
Enable it with cargo run --features self-describing-logs; the normal application
builder writes a compressed catalog at startup. See Self-Describing Logs
for external payloads, embedded memory bounds, and offline readers.
Start
- Home
- Copper Book
- Release Notes
- Project Templates
- Copper Application Overview
- Build and Deploy a Copper Application
- Copper Configuration file Reference
- Task Automation with just
Concepts
- Copper Runtime Overview
- Copper Configuration and Mission Visualization
- Copper Tasks lifecycle overview
- Copper Bridge concept
- Resources
- Modular Configuration
Embedded
Reference
- Reading Unified Logs
- Self-describing logs
- Remote Debugging
- SDK Features
- Copper Component Catalog
- FAQ
External