https://github.com/fraware/universal-recycle
Universal Recycle revolutionizes how you manage multi-language projects by providing a unified, extensible platform for code modernization, cross-language interoperability, and enterprise-grade build automation.
https://github.com/fraware/universal-recycle
Last synced: 5 months ago
JSON representation
Universal Recycle revolutionizes how you manage multi-language projects by providing a unified, extensible platform for code modernization, cross-language interoperability, and enterprise-grade build automation.
- Host: GitHub
- URL: https://github.com/fraware/universal-recycle
- Owner: fraware
- License: mit
- Created: 2025-07-10T15:56:57.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-07-18T21:32:22.000Z (11 months ago)
- Last Synced: 2025-07-19T02:15:30.874Z (11 months ago)
- Language: Python
- Homepage:
- Size: 3.61 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Universal Recycle
**The polyglot, manifest-driven, hermetic build system for recycling and modernizing code across languages.**
Universal Recycle revolutionizes how you manage multi-language projects by providing a unified, extensible platform for code modernization, cross-language interoperability, and enterprise-grade build automation.
[](https://github.com/fraware/universal-recycle)
[](LICENSE)
[](https://www.python.org/)
## Overview
Universal Recycle is a comprehensive build system designed for modern software development workflows. It provides:
- **Multi-language support** across Python, C++, Rust, Go, and WebAssembly
- **Hermetic builds** with Bazel integration for reproducible results
- **Enterprise features** including team collaboration and CI/CD integration
- **Extensible architecture** with a plugin system for custom workflows
- **Performance optimization** with distributed builds and smart caching
## Key Features
### Multi-Language Support
- **Python** - Ruff, MyPy, Black, Security scanning
- **C++** - Clang-tidy, vcpkg, Static analysis
- **Rust** - Cargo, Clippy, Security audits
- **Go** - Go modules, Linting, Testing
- **WebAssembly** - wasm-pack, Optimization
### Advanced Build System
- **Selective Builds** - Build only what you need
- **Build Profiles** - Debug, release, custom configurations
- **Bazel Integration** - Hermetic, reproducible builds
- **Distributed Builds** - Multi-node build distribution
### Enterprise Ready
- **Team Management** - User roles and permissions
- **CI/CD Integration** - Automated pipelines and webhooks
- **Performance Monitoring** - Metrics and optimization
- **Remote Caching** - Redis, S3, Google Cloud Storage
### Extensible Architecture
- **Plugin System** - Custom adapters and generators
- **Template Engine** - Project scaffolding
- **Binding Generation** - Cross-language interoperability
- **Distribution** - Multi-registry publishing
## Quick Start
```bash
# Clone the repository
git clone https://github.com/fraware/universal-recycle.git
cd universal-recycle
# Initialize your first project
python recycle/cli.py init
# Sync repositories and start building
python recycle/cli.py sync
python recycle/cli.py build --target my-project
```
**Get started in 5 minutes with our [Quick Start Tutorial](docs/quickstart.md)!**
## Documentation
### Getting Started
- [Installation Guide](docs/installation.md) - Setup and requirements
- [Quick Start Tutorial](docs/quickstart.md) - Your first project in 5 minutes
- [CLI Reference](docs/cli-reference.md) - Complete command reference
- [Plugin Development](docs/plugins.md) - Creating custom extensions
- [Troubleshooting](docs/troubleshooting.md) - Common issues and solutions
## Example Workflow
```yaml
# repos.yaml - Define your repositories
repositories:
- name: my-python-lib
language: python
git: https://github.com/org/my-python-lib
commit: main
adapters: [ruff, mypy, security]
- name: my-cpp-lib
language: cpp
git: https://github.com/org/my-cpp-lib
commit: v1.0.0
adapters: [clang-tidy, vcpkg]
```
```bash
# Sync repositories
python recycle/cli.py sync
# Run adapters for modernization
python recycle/cli.py adapt
# Generate language bindings
python recycle/cli.py bind --generators pybind11 grpc
# Build with specific profile
python recycle/cli.py build --target my-cpp-lib --profile release --bazel
# Distribute packages
python recycle/cli.py distribute --target my-python-lib
```
## Architecture Overview
```
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Manifest │ │ Adapters │ │ Bindings │
│ (repos.yaml) │───▶│ (Lint/Modern) │───▶│ (pybind11/ │
│ │ │ │ │ gRPC/etc) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Build System │ │ Cache System │ │ Distribution │
│ (Bazel/Prof) │ │ (Local/Remote)│ │ (PyPI/npm/etc)│
└─────────────────┘ └─────────────────┘ └─────────────────┘
```
## Use Cases
### Multi-Language Libraries
Build high-performance libraries with Python interfaces and C++/Rust backends.
### Microservices
Modernize legacy codebases with automated linting, security scanning, and cross-language bindings.
### Data Science Pipelines
Create reproducible data science workflows with Python, R, and C++ components.
### Web Applications
Build modern web apps with TypeScript frontends and Python/Go backends.
### Enterprise Systems
Scale development teams with role-based access, CI/CD automation, and performance monitoring.
## Plugin Ecosystem
Universal Recycle's extensible plugin system allows you to:
- **Create custom adapters** for your specific tools and workflows
- **Build custom generators** for new language bindings
- **Extend the CLI** with new commands and functionality
- **Share plugins** with the community
```bash
# List available plugins
python recycle/cli.py plugin --plugin-command list
# Create your own plugin
mkdir -p plugins/my-custom-adapter
# Add plugin.yaml and implementation
# Install and use your plugin
python recycle/cli.py plugin --plugin-command install --plugin-path ./plugins/my-custom-adapter
python recycle/cli.py adapt --adapter my-custom-adapter
```
See our [Plugin Development Guide](docs/plugins.md) to create your first plugin!
## Enterprise Features
### Team Collaboration
```bash
# Add team members
python recycle/cli.py team --team-command add-user --username alice --role member
# Create shared workspaces
python recycle/cli.py team --team-command create-workspace --workspace-name production
```
### CI/CD Integration
```bash
# Create automated pipelines
python recycle/cli.py cicd --cicd-command create-pipeline --pipeline-name production
# Add webhooks
python recycle/cli.py cicd --cicd-command add-webhook --webhook-url https://hooks.slack.com/...
```
### Performance Optimization
```bash
# Monitor performance
python recycle/cli.py performance --performance-command monitor
# Generate reports
python recycle/cli.py performance --performance-command report --output html
```
## Performance
Universal Recycle is designed for scale:
- **Parallel Processing** - Multi-core repository syncing and adapter execution
- **Distributed Builds** - Multi-node build distribution
- **Smart Caching** - Local and remote caching with intelligent invalidation
- **Incremental Updates** - Only process changed files and dependencies
## Contributing
We welcome contributions! See our [Contributing Guide](CONTRIBUTING.md) for details on:
- **Code of Conduct** - Our community standards
- **Development Setup** - Getting started with development
- **Pull Request Process** - How to submit changes
- **Plugin Development** - Creating custom extensions
### Quick Contribution
```bash
# Fork and clone
git clone https://github.com/your-username/universal-recycle.git
cd universal-recycle
# Install development dependencies
pip install -r requirements-dev.txt
# Run tests
python -m pytest tests/
# Submit a pull request
```
## License
Universal Recycle is licensed under the MIT License. See [LICENSE](LICENSE) for details.
## Support
### Documentation
- [Main Documentation](docs/README.md)
- [Quick Start](docs/quickstart.md)
- [Troubleshooting](docs/troubleshooting.md)
### Community
- [GitHub Issues](https://github.com/fraware/universal-recycle/issues)
- [GitHub Discussions](https://github.com/fraware/universal-recycle/discussions)
- [Email Support](mailto:support@universal-recycle.org)
## What's Included
This repository contains the complete Universal Recycle ecosystem:
### Core System
- **Complete CLI tool** with interactive wizard and rich output
- **Plugin system** with example plugin and development guide
- **Advanced build system** with Bazel integration and profiles
- **Enterprise features** for team collaboration and CI/CD
- **Comprehensive documentation** for all user types
### Key Components
- **160+ files** with 37,000+ lines of production-ready code
- **Multi-language support** (Python, C++, Rust, Go, WebAssembly)
- **Plugin ecosystem** for extensibility
- **Enterprise features** for team collaboration
- **Performance optimization** with distributed builds
- **Complete documentation** with examples and guides
## Roadmap
- **Enhanced Language Support** - Additional language adapters and bindings
- **Cloud Integration** - Native cloud platform support
- **Advanced Analytics** - Build performance insights and recommendations
- **Community Plugins** - Curated plugin marketplace
- **Enterprise Features** - Advanced team management and security features