Architecture
Architecture Overview
Understanding the CyanPrint system architecture and component relationships
Architecture Overview
CyanPrint is a distributed template execution platform designed to help developers scaffold projects quickly and consistently. This page provides an overview of the system architecture.
High-Level Architecture
Component Overview
User-Facing Components
| Component | Repository | Description |
|---|---|---|
| Iridium | sulfone.iridium | The CLI tool that users interact with. Handles project creation, updates, and template management. |
| Argon | sulfone.argon | Web-based registry UI where users can browse, search, and discover templates. |
Backend Services
| Component | Repository | Description |
|---|---|---|
| Zinc | sulfone.zinc | Registry API that stores template metadata, handles authentication, and serves template information. |
| Boron | sulfone.boron | Execution coordinator that manages container-based template execution. |
SDKs and Libraries
| Component | Repository | Description |
|---|---|---|
| Helium | sulfone.helium | Multi-language SDKs (TypeScript/Node, Python, C#/.NET) used by templates, processors, and plugins. Each SDK is an independent implementation that shares the same HTTP protocol. |
Documentation
| Component | Repository | Description |
|---|---|---|
| Silicon | sulfone.silicon | This documentation site, built with Next.js and Fumadocs. |
Data Flow
Execution Environment
Templates, processors, and plugins execute in isolated containers managed by Boron. This provides:
- Security: Untrusted code runs in isolated environments
- Reproducibility: Consistent execution across different machines
- Resource isolation: Limits on CPU, memory, and network access
- Versioning: Different versions can run simultaneously
Communication Patterns
Next Steps
- Learn about the Execution Flow in detail
- Set up your Development Environment
- Explore the Repositories