Copperlace Documentation

This directory documents Copperlace’s current renderer behavior and configuration contract. Treat these documents as the working specification for the behavior currently implemented in rust-core.

Contents

  • Capabilities describes what the renderer can produce and how rendering resolves rules, choices, bindings, and context defaults.

  • Configuration describes the accepted configuration shape and how each supported value type is interpreted.

  • Structured output describes object-valued rendering, JSON output, CLI mode inference, and wrapper structured APIs.

  • Errors and API behavior describes public Rust entry points and render error conditions.

  • Packaging and language wrappers describes build workflows, distributable artifacts, and Python/Java wrapper surfaces.

  • Release process describes how to prepare, publish, and verify Copperlace package releases.

Documented Renderer Surface

The behavior documented here is exported by the Rust library in rust-core/src/lib.rs:

  • RuleSet::from_config

  • RuleSet::render_rule

  • RuleSet::render_rule_inferred

  • RuleSet::render_rule_structured

  • render_config_rule

  • render_str_inferred / render_file_inferred

  • render_config_rule_structured

  • RenderError

  • configuration file and string helper APIs

The package also builds and packages:

  • a copperlace CLI with render --config <path> --rule <name>;

  • a C ABI dynamic library with an opaque ruleset handle API;

  • Python wheels backed by the native library;

  • Java API, all-platform, and platform native JARs.