maki build
Build FSH files to FHIR resources. This command is a drop-in replacement for SUSHI.
maki build [OPTIONS] [PROJECT_PATH]The build command compiles FSH files from input/fsh/ into FHIR JSON resources in fsh-generated/.
Options
Section titled “Options”Build Options
Section titled “Build Options”--output, -o <PATH>- Output directory (default:fsh-generated)--snapshot- Generate snapshots in StructureDefinitions--preprocessed- Output preprocessed FSH for debugging--clean- Clean output directory before building--progress- Show progress bar during build--no-cache- Disable incremental compilation cache--skip-deps- Skip installing FHIR package dependencies
Quality Options
Section titled “Quality Options”--lint- Run linter before build--strict- Treat warnings as errors (requires--lint)--format- Auto-format FSH files before build
Configuration
Section titled “Configuration”--config, -c <KEY:VALUE>- Override config values (version, status, releaselabel)
Examples
Section titled “Examples”# Build current directorymaki build
# Build with progress barmaki build --progress
# Run linter before buildingmaki build --lint
# Format FSH files before buildingmaki build --format
# Clean output and rebuildmaki build --clean
# Strict mode (treat warnings as errors)maki build --lint --strict
# Specify project path and outputmaki build ./my-ig --output ./output
# Override version for releasemaki build -c version:1.0.0 -c status:activeBuild Process
Section titled “Build Process”- Load Configuration - Reads
sushi-config.yamlormaki.yaml - Format (optional) - Auto-formats FSH files if
--formatis specified - Lint (optional) - Runs linter if
--lintis specified - Parse FSH - Parses all FSH files from
input/fsh/ - Build Semantic Model - Constructs the semantic representation
- Export Resources - Generates FHIR JSON for all resource types
- Generate Artifacts - Creates
package.json, FSH index, etc.
Output Structure
Section titled “Output Structure”fsh-generated/├── resources/│ ├── StructureDefinition-*.json│ ├── ValueSet-*.json│ ├── CodeSystem-*.json│ └── *.json (instances)├── package.json└── fsh-index.jsonSUSHI Compatibility
Section titled “SUSHI Compatibility”MAKI build is designed as a drop-in replacement for SUSHI:
- Same input structure - Reads from
input/fsh/directory - Same output structure - Generates to
fsh-generated/directory - Same configuration - Uses
sushi-config.yaml - Same resource format - Produces identical FHIR JSON output
Migrating from SUSHI
Section titled “Migrating from SUSHI”Simply replace your sushi command with maki build:
# Before (SUSHI)sushi .
# After (MAKI)maki buildPerformance
Section titled “Performance”MAKI build is significantly faster than SUSHI:
- Parallel processing - Utilizes all CPU cores
- Incremental builds - Only recompiles changed files
- Optimized parsing - Rust-based FSH parser
- Efficient export - Streaming JSON generation
Typical performance improvements:
| Project Size | SUSHI | MAKI |
|---|---|---|
| Small (10 files) | 5s | <1s |
| Medium (100 files) | 30s | 3s |
| Large (500+ files) | 2min+ | 15s |