Development
Welcome to the development section of the MUXI Framework documentation. This section is designed for contributors and developers who want to understand how the framework is built and how to contribute to its development.
Architecture Migration
The MUXI Framework has successfully completed its migration to a modular, package-based architecture. This transition involved:
- Reorganizing from a monolithic structure to a modular, package-based architecture
- Migrating imports from
src.*
tomuxi.core.*
,muxi.cli.*
, etc. - Creating independent packages that can be installed separately
- Establishing clear boundaries between subsystems
The modular design enhances maintainability and facilitates future development by:
- Allowing independent versioning of components
- Providing clearer boundaries between subsystems
- Enabling more focused testing
- Supporting separate deployments when needed
Contributing
We welcome contributions to the MUXI Framework! Whether you’re fixing bugs, adding features, or improving documentation, your help is appreciated.
Before contributing, please read our Contributing Guidelines to understand our development process, coding standards, and how to submit pull requests.
Codebase Organization
The MUXI Framework is organized into several packages:
core
: Core functionality including models, memory, tools, and orchestrationcli
: Command-line interface for using MUXIserver
: REST API and WebSocket serverweb
: Web interface for interacting with MUXIclients
: Client libraries for various languages
For more details, see our Codebase Organization page.
Testing
Testing is crucial for maintaining the stability and reliability of the MUXI Framework. We use a combination of unit tests, integration tests, and end-to-end tests.
For more information on our testing approach, see our Testing Strategies page.
Changelog
For a detailed list of changes made to the MUXI Framework, see our Changelog.
About This Section
The Development section provides guidelines, best practices, and resources for developers who want to contribute to MUXI. It covers everything from setting up a development environment to understanding the codebase structure and contributing code.
What’s In This Section
- Contributing Guidelines - How to contribute to the project
- Testing Strategies - Testing approach and best practices
- Codebase Organization - Detailed insight into the codebase structure
- Changelog - Record of changes and versions
Prerequisites
Before diving into development, it’s recommended that you:
- Have a good understanding of the MUXI Framework’s core concepts
- Be familiar with Python, FastAPI, and modern web development
- Understand basic Git workflow and GitHub collaboration
- Have experience with testing frameworks like pytest
Getting Started with Development
- Set up your development environment following the Contributing Guidelines
- Understand the Codebase Organization
- Learn the Testing Strategies to ensure your contributions maintain quality
- Check the Changelog to understand recent changes
Key Development Principles
MUXI development follows these core principles:
- Modularity: Components should be loosely coupled and highly cohesive
- Testability: All code should be testable and tested
- Documentation: Code should be well-documented with docstrings and comments
- Backward Compatibility: Breaking changes should be minimized and clearly documented
- Performance: Code should be efficient and scalable
Related Resources
For API documentation and technical details, refer to the Reference section. For deep dives into the technical architecture, see the Technical Deep Dives section.