Skip to content

melinoLabs/melinolb

Repository files navigation

Melino Load Balancer

A lightweight, high-performance HTTP/HTTPS load balancer written in Go.

Features

  • 🔄 Multiple load balancing strategies (round-robin, least-connections)
  • 💚 Active health checking
  • 🔒 TLS/SSL termination
  • 📊 Built-in metrics and monitoring
  • 🎯 Path-based and host-based routing
  • 🍪 Sticky sessions support
  • 🚦 Rate limiting
  • 📝 Comprehensive logging

Installation

Quick Install (Linux/macOS)

curl -fsSL https://raw.githubusercontent.com/edwardoboh/melinolb/main/install.sh | sh

Manual Installation

Download the latest release for your platform from releases page:

# Linux/macOS
wget https://github.com/edwardoboh/melinolb/releases/download/v1.0.0/melinolb_1.0.0_linux_amd64.tar.gz
tar -xzf melinolb_1.0.0_linux_amd64.tar.gz
sudo mv melinolb /usr/local/bin/

# Verify installation
melinolb --version

Using Go

go install github.com/edwardoboh/melinolb/cmd@latest

Quick Start

Create a config.yaml:

service:
  name: "my-proxy"
  listen: "0.0.0.0:8080"

routes:
  - id: "api"
    match:
      path: "/api"
    backend:
      - "http://localhost:3001"
      - "http://localhost:3002"
    lb: "round-robin"

Run the load balancer:

melinolb config.yaml

Documentation

Examples

See the examples/ directory for common configuration patterns:

Contributing

We welcome contributions! Here's how you can help:

Reporting Issues

  • Check existing issues before creating a new one
  • Provide clear reproduction steps
  • Include configuration files (sanitize sensitive data)
  • Share error logs and version information

Submitting Changes

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Test thoroughly with various configurations
  5. Commit with clear messages (git commit -m 'feat: add amazing feature')
  6. Push to your branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

Development Guidelines

  • Follow existing code style and conventions
  • Add tests for new features
  • Update documentation for configuration changes
  • Add examples for new functionality

Areas We Need Help

  • 🐛 Bug fixes and testing
  • 📝 Documentation improvements
  • 🌟 New load balancing strategies
  • 🔧 Performance optimizations
  • 🧪 Test coverage

About

Lightweight high-performant HTTP/HTTPS load balancer

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors