Some checks failed
CI/CD Pipeline / Test Suite (push) Has been cancelled
CI/CD Pipeline / Security Audit (push) Has been cancelled
CI/CD Pipeline / Performance Benchmarks (push) Has been cancelled
Rust CI / Security Audit (push) Has been cancelled
Rust CI / Check + Test + Lint (nightly) (push) Has been cancelled
Rust CI / Check + Test + Lint (stable) (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 / Cleanup (push) Has been cancelled
160 lines
5.2 KiB
Markdown
160 lines
5.2 KiB
Markdown
# 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:
|
|
|
|
1. **Existing rustelo users**: Continue using basic functionality
|
|
2. **p-jpl-website users**: Full feature set available as composable features
|
|
3. **New users**: Start with foundation + selected features
|
|
4. **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
|