This project is a load balancer implemented in Rust. It is designed to efficiently distribute incoming network traffic across multiple backend servers, ensuring high availability and reliability.
- Efficient Traffic Distribution: Balances traffic across multiple backends.
- Geo-based Routing: Supports routing based on geographic location.
- Configurable: Easily customizable via a configuration file.
- High Performance: Built with Rust for speed and safety.
- Rust (latest stable version) installed. You can install Rust using rustup.
- Clone the repository:
git clone https://github.com/utfunderscore/loadbalancer-rs.git cd loadbalancer-rs
- Build the project using Cargo:
cargo build --release
- Ensure you have a valid
config.yml
file in the root directory. This file contains the configuration for the load balancer. - Run the application:
cargo run --release
The config.yml
file allows you to customize the behavior of the load balancer. Example configuration options include:
- Backend server addresses
- Geo-routing rules
- Connection timeouts
Refer to the config.rs
file for detailed configuration options.
We welcome contributions! To contribute:
- Fork the repository.
- Create a new branch for your feature or bugfix:
git checkout -b feature-name
- Make your changes and commit them:
git commit -m "Add new feature"
- Push your changes to your fork:
git push origin feature-name
- Open a pull request on the main repository.
This project is licensed under the GPLv3 License. See the LICENSE
file for details.
If you encounter any issues or have questions, feel free to open an issue on the repository or contact the maintainers.