Universal Network Endpoint Management

A comprehensive Python library designed for unified network endpoint management across multiple protocols. UriPoint simplifies the creation, management, and monitoring of network endpoints through a single, cohesive interface.

PyPI Package GitHub Repository

Key Features

UriPoint provides a comprehensive solution that goes beyond simple protocol handling, offering a complete platform for building, managing, and operating network communications.

Unified Management

Handle multiple protocols through one consistent interface, simplifying your network architecture and reducing complexity.

Simplified Configuration

Easy setup through CLI or Python API with persistent YAML-based configuration storage.

Protocol Agnostic

Support for web, streaming, IoT, and messaging protocols with protocol-specific optimizations and auto-negotiation.

Production Ready

Built-in monitoring, testing, and persistence with comprehensive testing framework and chaos engineering support.

High Performance

Optimized communication, reduced overhead, and integrated caching for better performance across all protocols.

Enhanced Security

Consistent security policies, unified authentication, and centralized monitoring across all endpoints.

Comprehensive Protocol Support

UriPoint supports a wide range of protocols, making it suitable for various use cases from web services to IoT and streaming applications.

Web Protocols

  • HTTP/HTTPS
  • WebSocket
  • GraphQL

Streaming

  • RTSP
  • HLS
  • DASH

IoT

  • MQTT
  • CoAP

Messaging

  • AMQP
  • ZeroMQ

Storage

  • Redis
  • MongoDB

Other

  • Email (SMTP, IMAP)
  • File Transfer (FTP, SFTP)
  • Name Resolution (DNS)
  • Installation & Setup

    Getting started with UriPoint is simple and straightforward.

    Basic Installation

    pip install uripoint

    Configuration

    UriPoint uses a YAML-based configuration file stored at ~/.uripoint_config.yaml:

    # ~/.uripoint_config.yaml
    endpoints:
      - name: api-endpoint
        uri: http://localhost:8080/api
        protocol: http
        methods: [GET, POST]
    
      - name: mqtt-sensor
        uri: mqtt://broker:1883/sensors
        protocol: mqtt
        qos: 1

    Usage Guide

    UriPoint provides both a CLI and Python API for managing endpoints.

    Service Lifecycle

    ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ Create │ │ Configure │ │ Deploy │ │ Endpoint ├──►│ Protocol ├──►│ Service │ └──────────────┘ └──────────────┘ └──────────────┘ ▲ │ │ ▼ ┌──────────────┐ ┌──────────────┐ │ Update │◄───────────────────│ Monitor │ │ Configuration│ │ Status │ └──────────────┘ └──────────────┘

    CLI Commands

    uripoint [options] <command>
    
    # List all configured endpoints
    uripoint --list
    
    # Serve all endpoints as a live server
    uripoint --serve
    
    # Test endpoints
    uripoint --test
    
    # Detach specific endpoints
    uripoint --detach "http://localhost:9000/api/hello"

    Python API

    from uripoint import UriPointCLI
    
    cli = UriPointCLI()
    cli.create_endpoint(
        uri='http://localhost:8000/api/users',
        data={
            'response': {'users': []},
            'methods': ['GET', 'POST', 'PUT', 'DELETE']
        }
    )
    
    # Start serving endpoints
    cli.serve()

    Protocol Examples

    HTTP/REST API

    Python
    CLI
    from uripoint import UriPointCLI
    
    cli = UriPointCLI()
    cli.create_endpoint(
        uri='http://localhost:8000/api/users',
        data={
            'response': {'users': []},
            'methods': ['GET', 'POST', 'PUT', 'DELETE']
        }
    )
    # Create endpoint
    uripoint --uri http://localhost:8000/api/users --data '{"response": {"users": []}}' --method GET POST PUT DELETE
    
    # Test endpoint
    curl -X GET http://localhost:8000/api/users

    MQTT IoT Device

    Python
    CLI
    cli.create_endpoint(
        uri='mqtt://localhost:1883/sensors/temperature',
        data={
            'topic': 'sensors/temperature',
            'qos': 1,
            'device': {
                'type': 'temperature',
                'location': 'room1'
            }
        }
    )
    # Create endpoint
    uripoint --uri mqtt://localhost:1883/sensors/temperature --data '{"topic": "sensors/temperature", "qos": 1}'
    
    # Test endpoint
    mosquitto_pub -h localhost -p 1883 -t sensors/temperature -m '{"value": 22.5}'

    RTSP Stream

    Python
    CLI
    cli.create_endpoint(
        uri='rtsp://localhost:8554/camera1',
        data={
            'stream_url': 'rtsp://camera.example.com/stream1',
            'transport': 'tcp'
        }
    )
    # Create endpoint
    uripoint --uri rtsp://localhost:8554/camera1 --data '{"stream_url": "rtsp://camera.example.com/stream1", "transport": "tcp"}'
    
    # Test endpoint
    ffplay rtsp://localhost:8554/camera1

    Architecture

    UriPoint is built with a modular architecture that separates concerns and provides flexibility.

    System Components

    ┌───────────────────────────────────────────────────────┐ │ UriPoint System │ ├───────────────┬──────────────────┬────────────────────┤ │ Core Engine │ Protocol Layer │ Management Layer │ ├───────────────┼──────────────────┼────────────────────┤ │ - Config │ - HTTP/HTTPS │ - CLI Interface │ │ - Persistence │ - MQTT │ - API Interface │ │ - Monitoring │ - RTSP │ - Web Dashboard │ │ - Testing │ - Redis │ - Monitoring UI │ └───────────────┴──────────────────┴────────────────────┘

    Component Interaction

    1. Core Engine
      • Configuration management
      • State persistence
      • Event handling
      • Resource management
    2. Protocol Layer
      • Protocol-specific handlers
      • Data transformation
      • Connection management
      • Error handling
    3. Management Layer
      • User interfaces
      • Monitoring tools
      • Administration features
      • Reporting systems

    Testing Framework

    ┌────────────────────────┐ ┌─────────────────────────┐ │ Performance Tests │ │ Integration Tests │ ├────────────────────────┤ ├─────────────────────────┤ │ - Endpoint Creation │ │ - Component Interaction │ │ - Concurrent Access │ │ - Multi-Protocol │ │ - Memory Usage │ │ - Process Management │ │ - Protocol Handlers │ │ - Error Propagation │ └────────────────────────┘ └─────────────────────────┘ ┌────────────────────────┐ ┌─────────────────────────┐ │ Chaos Tests │ │ Protocol Tests │ ├────────────────────────┤ ├─────────────────────────┤ │ - Random Operations │ │ - Protocol Validation │ │ - Process Chaos │ │ - Handler Behavior │ │ - Network Simulation │ │ - Configuration │ │ - Data Input Chaos │ │ - Error Handling │ └────────────────────────┘ └─────────────────────────┘

    Target Audience

    UriPoint is designed for a variety of professionals working with distributed systems and network communications.

    Distributed Systems Developers

    Building microservices architectures, managing service discovery, implementing API gateways, and developing service meshes.

    DevOps Engineers

    Infrastructure automation, service deployment, monitoring setup, and configuration management.

    IoT Specialists

    Device management, sensor networks, data collection systems, and remote monitoring.

    Streaming Engineers

    Video streaming services, live broadcast systems, security camera networks, and content delivery networks.

    Backend Developers

    API development, service integration, message queue implementation, and cache management.

    Advantages Over Point Solutions

    UriPoint provides a comprehensive solution that goes beyond simple protocol handling, offering a complete platform for building, managing, and operating network communications.

    ┌─────────────────────┐ ┌─────────────────────────┐ │ UriPoint │ │ Multiple Libraries │ ├─────────────────────┤ ├─────────────────────────┤ │ - Single interface │ │ - Multiple interfaces │ │ - Unified config │ │ - Separate configs │ │ - Built-in testing │ │ - Custom testing needed │ │ - One installation │ │ - Multiple installs │ └─────────────────────┘ └─────────────────────────┘

    Key Advantages

    Development Speed

    • Single API to learn
    • Consistent patterns
    • Integrated tools

    Maintenance

    • Centralized updates
    • Unified logging
    • Single point of configuration

    Integration

    • Built-in protocol support
    • Standardized error handling
    • Common monitoring interface

    Testing

    • Comprehensive test suite
    • Cross-protocol testing
    • Integrated monitoring

    Advanced Examples

    UriPoint can handle complex scenarios involving multiple protocols and integrations.

    Full IoT Monitoring System

    # CLI Commands
    # Create MQTT endpoint for sensor data
    uripoint --uri mqtt://localhost:1883/sensors \
             --data '{
               "topics": ["sensors/#"],
               "qos": 1
             }'
    
    # Create Redis endpoint for data storage
    uripoint --uri redis://localhost:6379/sensor-data \
             --data '{
               "database": 1,
               "expire": 3600
             }'
    
    # Create HTTP API endpoint
    uripoint --uri http://localhost:8080/api/sensors \
             --method GET POST \
             --data '{
               "cache": "redis://localhost:6379/sensor-data",
               "mqtt": "mqtt://localhost:1883/sensors"
             }'

    Python Implementation

    from uripoint import UriPointCLI, SystemTest
    
    # Create system endpoints
    cli = UriPointCLI()
    
    # MQTT endpoint
    mqtt = cli.create_mqtt_endpoint(
        uri='mqtt://localhost:1883/sensors',
        data={
            'topics': ['sensors/#'],
            'qos': 1
        }
    )
    
    # Redis endpoint
    redis = cli.create_redis_endpoint(
        uri='redis://localhost:6379/sensor-data',
        data={
            'database': 1,
            'expire': 3600
        }
    )
    
    # HTTP API endpoint
    api = cli.create_endpoint(
        uri='http://localhost:8080/api/sensors',
        data={
            'methods': ['GET', 'POST'],
            'cache': 'redis://localhost:6379/sensor-data',
            'mqtt': 'mqtt://localhost:1883/sensors'
        }
    )
    
    # Create system test
    test = SystemTest([mqtt, redis, api])
    test.verify_integration()
    test.test_data_flow()
    test.check_performance()

    Testing Framework

    UriPoint includes a comprehensive testing framework that ensures reliability and performance across all components.

    Common Test Cases

    # Basic endpoint test
    test = EndpointTest(endpoint)
    test.run()
    
    # Protocol-specific tests
    test.verify_protocol()
    test.check_security()
    test.validate_performance()
    
    # Integration tests
    test.verify_dependencies()
    test.check_data_flow()
    test.test_failover()
    
    # Load tests
    test.concurrent_access(num_clients=100)
    test.sustained_load(duration=300)
    test.peak_performance()
    
    # Chaos tests
    test.network_partition()
    test.process_failure()
    test.data_corruption()

    Test Configuration

    # test_config.yaml
    tests:
      performance:
        concurrent_users: 100
        duration: 300
        thresholds:
          latency_p95: 200
          error_rate: 0.01
    
      integration:
        dependencies:
          - redis
          - mqtt
          - http
        timeout: 30
    
      chaos:
        scenarios:
          - network_partition
          - process_crash
          - disk_full
        duration: 600

    Running Tests

    # Run all tests
    pytest tests/
    
    # Run specific test categories
    pytest tests/test_protocols.py
    pytest tests/test_performance.py
    pytest tests/test_integration.py
    pytest tests/test_chaos.py
    
    # Run with coverage report
    pytest --cov=uripoint tests/

    Ready to Simplify Your Network Endpoint Management?

    UriPoint provides a comprehensive solution for managing network endpoints across multiple protocols. Get started today!

    Install from PyPI Explore on GitHub Read the Docs