Some checks failed
CI/CD Pipeline / Test Suite (push) Has been cancelled
CI/CD Pipeline / Security Audit (push) Has been cancelled
CI/CD Pipeline / Build Docker Image (push) Has been cancelled
CI/CD Pipeline / Deploy to Staging (push) Has been cancelled
CI/CD Pipeline / Deploy to Production (push) Has been cancelled
CI/CD Pipeline / Performance Benchmarks (push) Has been cancelled
CI/CD Pipeline / Cleanup (push) Has been cancelled
5.2 KiB
5.2 KiB
Rustelo Feature-Based Architecture Overview
Architecture Vision
Rustelo has been transformed from a basic framework into a modular, feature-composable system that preserves all advanced functionality from p-jpl-website while enabling clean composition and reuse.
Core Structure
rustelo/
├── framework/ # Core framework crates
│ └── crates/
│ ├── rustelo-core/
│ ├── rustelo-web/
│ ├── rustelo-auth/
│ ├── rustelo-content/
│ └── rustelo-cli/ # Enhanced CLI with feature management
├── foundation/ # Advanced blueprint from p-jpl-website
│ └── crates/
│ ├── client/ # Advanced Leptos client
│ ├── server/ # Advanced Axum server
│ ├── core-lib/ # Sophisticated shared library
│ ├── core-types/ # Enhanced type system
│ ├── components/ # Rich UI component library
│ ├── pages/ # Advanced page generation
│ ├── tools/ # Development tools and analytics
│ └── utils/ # Utility functions
├── features/ # Modular features
│ ├── analytics/ # Comprehensive analytics system
│ ├── smart-build/ # Incremental build system
│ ├── debugging-tools/ # Enhanced debugging capabilities
│ └── ui-components/ # Reusable Leptos components
├── registry/ # Central configuration
│ ├── dependencies.toml # Centralized dependency versions
│ └── features.toml # Feature registry and metadata
└── templates/ # Project scaffolding templates
Key Architectural Principles
1. Language Agnostic Design
- No hardcoded languages in the framework
- Dynamic language discovery from configuration
- i18n integration with Fluent files
- Language-specific routing without code changes
2. Configuration-Driven Architecture
- All paths configurable via environment variables
- Route definitions in TOML files, not code
- Content types via
content-kinds.toml - Feature composition through configuration
3. Modular Design
- Features are self-contained and composable
- Clean interfaces between components
- Dependency injection patterns
- Zero breaking changes policy
4. Dependency Priority System
- p-jpl-website dependencies take priority
- Registry-based version management
- Conflict detection and resolution
- Workspace dependency coordination
Integration Levels
The system provides integration at all stack levels:
1. Dependencies
- Cargo.toml: Workspace dependencies and external crates
- package.json: Node.js dependencies for tooling
- Registry: Centralized version management
2. Environment
- .env: Environment variables and configuration
- Secrets: Secure handling of sensitive values
- Defaults: Sensible default values
3. Configuration
- TOML/JSON: Intelligent config file merging
- Override: Feature-specific configuration
- Validation: Configuration integrity checks
4. Resources
- Public: Static assets (JS, CSS, images)
- Site: Content and documentation files
- i18n: Translation files (Fluent .ftl)
5. Styling
- UnoCSS: Atomic CSS with feature presets
- Themes: Feature-specific theme extensions
- Components: Styled component libraries
6. Infrastructure
- Docker: Service composition and deployment
- CI/CD: Automated testing and deployment
- Monitoring: Observability and alerting
7. Development
- Scripts: Nushell automation scripts
- Just: Task runner integration
- Git: Hooks and workflow automation
Feature Lifecycle
Discovery → Installation → Configuration → Integration → Usage → Removal
Discovery
- Browse available features in registry
- Check feature compatibility
- Review feature documentation
Installation
- Dependency resolution and conflict detection
- Resource copying and integration
- Configuration merging and validation
Configuration
- Environment variable setup
- Feature-specific configuration
- Integration validation
Integration
- All stack levels integrated automatically
- Dependency injection and wiring
- Testing and validation
Usage
- Feature APIs and functionality available
- Documentation and examples provided
- Monitoring and analytics enabled
Removal
- Clean removal of all feature artifacts
- Dependency cleanup and validation
- Configuration restoration
Migration Strategy
The architecture preserves backward compatibility while enabling gradual migration:
- Existing rustelo users: Continue using basic functionality
- p-jpl-website users: Full feature set available as composable features
- New users: Start with foundation + selected features
- Advanced users: Create custom features and compositions
Success Metrics
✅ Achieved Goals:
- All p-jpl-website functionality preserved as features
- Zero hardcoded dependencies or paths
- Clean feature addition/removal
- No breaking changes for existing users
- Single command project creation
- Complete resource integration
- Feature composition without conflicts
- Clean separation of concerns