This page is the short package map for the repository. Use it when you want to know what each crate or package is for before diving into subsystem-specific docs.

πŸ”—The short version

The repository has four broad groups:

  • Core Rust crates for the runtime, proc macros, embedding support, benchmarking, linting, and CLI commands.
  • Support tooling for vendoring and offline packaging.
  • R packages for the example package flow and user-facing scaffolding.
  • Fixture packages for cross-package ABI tests and template validation.

πŸ”—Package groups

PackageKindBest way to think about it
miniextendr-apiRuntime crateThe crate downstream Rust code usually depends on
miniextendr-macrosProc-macro crateThe macro layer behind #[miniextendr] and derives
miniextendr-macros-coreInternal helper crateShared parser/generation support for macros and lint
miniextendr-engineEmbedding crateStandalone embedded-R support outside normal package builds
miniextendr-cliCLI toolRust-side workflow and scaffolding commands
miniextendr-lintInternal lint crateBuild-time checks for framework usage
miniextendr-benchBenchmark cratePerformance and runtime experiments
cargo-revendorVendoring toolOffline/hermetic dependency packaging support
rpkg/Example R packageThe repo’s reference package that exercises the full build flow
minirextendr/R helper packageScaffolding and maintenance helpers for end users
tests/cross-package/*Fixture packagesProducer/consumer packages for trait-ABI testing
tests/model_project/Fixture projectScaffold snapshot used in template/workflow tests and the full-project tutorial

πŸ”—When to start where

  • If you are building an R package with Rust, start with Getting Started, then use minirextendr plus miniextendr-api.
  • If you are trying to understand the repo itself, start with Architecture and then read the full Package Map.
  • If you are debugging release or packaging behavior, expect to spend time in rpkg/, minirextendr/, and the vendoring/build-system docs.

πŸ”—Full package map

The detailed version, including workspace membership, publish status, and how the packages relate, lives in the manual: