# lib-gateway-port

A lightweight, high-performance HTTP gateway and reverse proxy library for Python applications.

## Features

- **Path-Based Access Control**: Define protected routes with flexible ACL rules
- **Request Validation**: Built-in validation and sanitization for security
- **Connection Pooling**: Efficient backend connection management
- **Production Ready**: Battle-tested in high-traffic production environments
- **Zero Dependencies**: Pure Python implementation with no external requirements
- **Easy Integration**: Simple API for quick deployment

## Installation

```bash
pip install lib-gateway-port
```

## Quick Start

```python
from lib_gateway_port import SecurityGateway

# Initialize gateway
gateway = SecurityGateway(
    backend_host="127.0.0.1",
    backend_port=5000,
    listen_port=9000,
    protected_paths=["/admin/", "/internal/"]
)

# Start the gateway
gateway.start()
```

## Configuration Options

```python
gateway = SecurityGateway(
    backend_host="127.0.0.1",      # Backend server address
    backend_port=5000,              # Backend server port
    listen_port=9000,               # Gateway listening port
    protected_paths=["/admin/"],    # Paths requiring access control
    max_connections=100,            # Maximum concurrent connections
    request_timeout=30              # Request timeout in seconds
)
```

## Use Cases

- **API Gateway**: Route and protect REST APIs
- **Microservices**: Central entry point for microservice architectures
- **Legacy Applications**: Add security layer to existing applications
- **Access Control**: Implement path-based authentication requirements
- **Load Distribution**: Balance traffic across backend servers

## Architecture

```
Client Request → Gateway (ACL + Validation) → Backend Application
                        ↓
                  Protected Paths
                  Request Sanitization
                  Connection Pooling
```

## Security

This library implements industry-standard security practices:
- Request validation and sanitization
- Path normalization to prevent traversal attacks
- Connection timeout management
- Access control list enforcement

## Performance

Optimized for high-throughput production environments:
- Persistent backend connections for reduced latency
- Efficient request parsing and routing
- Minimal memory footprint
- Suitable for handling thousands of requests per second

## License

MIT License - See LICENSE file for details

## Support

- Documentation: https://gateway-port.readthedocs.io
- Issues: https://github.com/gateway-port/lib-gateway-port/issues
- Source: https://github.com/gateway-port/lib-gateway-port
