Skip to main content

UriPoint

Overview

UriPoint is a flexible Python library for creating, managing, and interacting with network endpoints across multiple protocols.

Key Features

Persistent Endpoint Management

UriPoint provides a robust CLI for creating and managing endpoints that persist across sessions.

How It Works

  1. Configuration Storage

    • Endpoints are stored in ~/.uripoint_config.yaml
    • Automatically saves and loads endpoint configurations
    • Maintains state between CLI sessions
  2. Endpoint Creation

    • Supports multiple creation methods
    • Prevents duplicate endpoint registration
    • Stores endpoint details with associated metadata

Installation

pip install uripoint

CLI Usage

Endpoint Creation Methods

  1. Full URI Approach
# Create an endpoint with full URI
uripoint --uri http://localhost:8080/api/status --data '{"status": "OK"}'
  1. Component-Based Approach
# Create an endpoint using individual components
uripoint --hostname localhost --path /api/status --protocol http --port 8001 --data '{"status": "OK"}'

Endpoint Management

# List all configured endpoints
uripoint --list

# Serve all configured endpoints
uripoint --serve

uripoint --test

Persistent Configuration

How Configuration Works

  • Endpoints are saved in ~/.uripoint_config.yaml
  • Each endpoint includes:
    • Protocol
    • Hostname
    • Path
    • Port
    • Optional metadata

Example Workflow

# Create first endpoint
uripoint --hostname localhost --path /api/users --port 8001

# Create second endpoint
uripoint --hostname localhost --path /api/products --port 8002

# List all endpoints (persists between sessions)
uripoint --list

# Serve all endpoints
uripoint --serve

Supported Protocols

Web Protocols

  • HTTP
  • HTTPS
  • WebSocket (WS)
  • WebSocket Secure (WSS)

File Transfer Protocols

  • FTP
  • SFTP

IoT and Messaging Protocols

  • MQTT
    • Supports IoT device communication
    • QoS levels and retain messages
    • Topic-based routing
    • See MQTT Example

Data Store Protocols

  • Redis
    • Caching and data storage
    • Multiple database support
    • Key expiration
    • See Redis Example

Email Protocols

  • SMTP
    • Email sending capabilities
    • HTML and plain text support
    • Template system
    • Attachments handling
    • See SMTP Example

Message Queue Protocols

  • AMQP (RabbitMQ)
    • Message queuing
    • Exchange types (direct, topic, fanout)
    • Routing capabilities
    • Durable queues
    • See AMQP Example

Domain Name Protocols

  • DNS
    • Forward and reverse lookups
    • Multiple record types (A, AAAA, MX, TXT, SRV)
    • DNS monitoring
    • Caching support
    • See DNS Example

Programmatic Usage

from uripoint import UriPointCLI

# Create CLI instance
cli = UriPointCLI()

# Create an endpoint
cli.create_endpoint(
    uri='http://localhost:8000/api/status',
    data='{"status": "OK"}'
)

# List endpoints
cli.list_endpoints()

# Serve endpoints
cli.serve()

Configuration File Location

  • Path: ~/.uripoint_config.yaml
  • Format: YAML
  • Contents: List of endpoint configurations

Contributing

Contributions are welcome! Please see CONTRIBUTING.md

License

This project is licensed under the terms of the LICENSE file in the project root.

Metadata

Release files for uripoint 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for uripoint 1.1.0
File Size Uploaded
uripoint-1.1.0.tar.gz 31.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for uripoint 1.1.0
File Interpreter ABI Platform
uripoint-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 46.1 kB

Release files / uripoint-1.1.0.tar.gz

Download URL uripoint-1.1.0.tar.gz
Size 31.2 kB
Tags Source
SHA-256 checksum
How to use checksums
bae6980ebf39f73111638087b39b369193db6a95b0346be6c886d8e367ea7a12
BLAKE2b-256 checksum
How to use checksums
a51cfb4a3b0c905588f3826279cafb72936035b042ad6b56089949b9c3e278e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.11.3

Release files / uripoint-1.1.0-py3-none-any.whl

Download URL uripoint-1.1.0-py3-none-any.whl
Size 14.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9cddca795e09a62e2064dfbb56ddbc3bba79137cf2ed148405190be7559f3281
BLAKE2b-256 checksum
How to use checksums
b24165e628c88ced6d12cba0a3b15e8b8cb3fbea479c5ce766c24a1b9af24a7b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.11.3

Release history Release notifications | RSS feed

1.9.7

2 release files

1.9.6

2 release files

1.9.5

2 release files

1.9.4

2 release files

1.9.3

2 release files

1.9.2

2 release files

1.9.1

2 release files

1.9.0

2 release files

1.8.0

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

This release

1.1.0 This release

2 release files

1.0.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page