No project description provided
Project description
Keeper PAM WebRTC for Python
A secure, stable, and high-performance Tube API for Python, providing WebRTC-based secure tunneling with enterprise-grade security and reliability optimizations.
Core Values
Security • Stability • Performance - Built for Keeper Security's mission-critical applications:
- 🔒 Security First: Memory-safe Rust implementation with comprehensive bounds checking
- 🛡️ Enterprise Stability: Lock-free architecture eliminates race conditions and deadlocks
- ⚡ Optimized Performance: Advanced optimizations deliver exceptional speed when you need it
- 🔧 Production Ready: Zero-configuration reliability for demanding security applications
Description
keeper-pam-webrtc-rs provides Python bindings to a Rust-based Tube API for secure communication, designed for:
- Secure tunneling via WebRTC data channels with memory-safe operations
- Multi-connection management through tube abstractions
- Reliable peer connection handling with comprehensive error handling
- Efficient channel management for different communication patterns
- Cross-platform compatibility (Linux, macOS, Windows, Alpine)
- Mission-critical reliability for security-focused applications
This package is designed to be used with Keeper Gateway and Keeper Commander. It provides a secure, reliable tube-based communication system built on WebRTC, specifically tailored for Keeper Security's internal products and security-critical tunneling use cases.
Note: This package is intended for internal Keeper Security products and is not being actively advertised for general use.
Installation
pip install keeper-pam-webrtc-rs
Usage
import keeper_pam_webrtc_rs
# Create a tube registry
registry = keeper_pam_webrtc_rs.PyTubeRegistry()
# Define a signal callback for WebRTC events
def on_signal(signal_dict):
print(f"Received signal: {signal_dict}")
# Handle ICE candidates, connection state changes, etc.
# Create a server-side tube for tunneling
server_result = registry.create_tube(
conversation_id="tunnel-session-123",
settings={
"conversationType": "tunnel",
"target_host": "127.0.0.1",
"target_port": "22" # SSH tunnel example
},
trickle_ice=True,
callback_token="server-token",
ksm_config="server-config",
signal_callback=on_signal
)
# Get the offer SDP to send to the client
server_offer = server_result['offer']
server_tube_id = server_result['tube_id']
# Create a client-side tube with the offer
client_result = registry.create_tube(
conversation_id="tunnel-client-123",
settings={
"conversationType": "tunnel",
"target_host": "192.168.1.100",
"target_port": "22"
},
trickle_ice=True,
callback_token="client-token",
ksm_config="client-config",
offer=server_offer, # Use server's offer
signal_callback=on_signal
)
# Get the answer SDP to send back to server
client_answer = client_result['answer']
client_tube_id = client_result['tube_id']
# Set the remote description on the server
registry.set_remote_description(server_tube_id, client_answer, is_answer=True)
# Check connection state
state = registry.get_connection_state(server_tube_id)
print(f"Connection state: {state}")
# Close when done
registry.close_tube(server_tube_id)
registry.close_tube(client_tube_id)
Features
- 🔒 Memory Safety: Rust-powered implementation prevents buffer overflows and memory corruption
- 🛡️ Reliable Architecture: Lock-free design eliminates race conditions and ensures stability
- ⚡ Efficient Performance: Optimized for speed without compromising security or stability
- 🌊 Tube Abstraction: High-level API for managing WebRTC-based secure tunnels
- 🌍 Cross-Platform: Secure, consistent behavior across Linux, macOS, Windows, Alpine
- 🐍 Python Integration: Built with abi3 for maximum compatibility (Python 3.7+)
- 🔧 Production Hardened: Comprehensive error handling and graceful degradation
Tube API Architecture
This implementation provides a Tube-based abstraction over WebRTC:
Security Features
- Memory-Safe Operations: Rust's ownership system prevents common security vulnerabilities
- Bounds Checking: Comprehensive validation prevents buffer overflows and data corruption
- Zero Unsafe Code: Hot paths use only verified, safe Rust code (except vetted SIMD intrinsics)
- Graceful Error Handling: Robust error recovery prevents crashes and data leaks
Tube Management
- Multi-Connection Support: Each tube can manage multiple WebRTC connections
- Channel Abstraction: High-level channel management for different protocols
- State Management: Comprehensive connection state tracking and reporting
- Signal Handling: Event-driven architecture for ICE candidates and state changes
Performance Features
- SIMD Optimization: Hardware-accelerated frame parsing with safe fallbacks
- Zero-Copy Pipelines: Efficient data handling minimizes memory overhead
- Event-Driven Design: Native WebRTC events provide responsive communication
- Always Optimized: Maximum efficiency by default, no configuration required
Tube API Reference
Core Methods
create_tube(conversation_id, settings, ...)- Create a new secure tubeset_remote_description(tube_id, sdp, is_answer)- Set remote SDP descriptionadd_ice_candidate(tube_id, candidate)- Add ICE candidate for connectionget_connection_state(tube_id)- Get current connection statenew_connection(tube_id, connection_id, settings)- Add connection to existing tubecreate_channel(connection_id, tube_id, settings)- Create channel on tubeclose_connection(tube_id, connection_id)- Close specific connectionclose_tube(tube_id)- Close entire tube
Conversation Types
The tube API supports different communication patterns:
tunnel- Secure TCP tunneling through WebRTCguacd- Apache Guacamole protocol tunnelingsocks5- SOCKS5 proxy tunneling
Build & Verification
To build and verify the implementation:
# Standard build (all optimizations enabled)
cargo build --release
# Run comprehensive test suite
cargo test --release
# Optional: Enable debug logging for troubleshooting
cargo build --release --features production_debug
Why This Implementation?
Built specifically for Keeper Security's tunneling requirements:
- Security-First Design: Memory safety and comprehensive validation prevent vulnerabilities
- Mission-Critical Reliability: Lock-free architecture ensures stable operation under load
- Optimized for Security Applications: Performance optimizations that don't compromise security
- Tube Abstraction: High-level API designed specifically for secure tunneling use cases
The secure, stable, high-performance tube communication system for enterprise security applications.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file keeper_pam_webrtc_rs-0.2.8-cp37-abi3-win_amd64.whl.
File metadata
- Download URL: keeper_pam_webrtc_rs-0.2.8-cp37-abi3-win_amd64.whl
- Upload date:
- Size: 7.0 MB
- Tags: CPython 3.7+, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
94cf7b693bc9e23615a33363af8b0a54c28f2cef092328b0417562062e3f4eb9
|
|
| MD5 |
5e7e5ea3ebbd17bec0a9b324ad69315a
|
|
| BLAKE2b-256 |
2265da691c6db59010ccbeafee71291bf5151f953e7e76fa2222a9c59f25c48d
|
File details
Details for the file keeper_pam_webrtc_rs-0.2.8-cp37-abi3-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: keeper_pam_webrtc_rs-0.2.8-cp37-abi3-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 8.4 MB
- Tags: CPython 3.7+, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c58ab2e625d352155f91c31dde9976596664fd916d951a1f34595feec6fa6060
|
|
| MD5 |
a02524f90a2f4ef99532f09120bc5851
|
|
| BLAKE2b-256 |
12840641870265c8dbc70c5ab2364493b7cbfe0aa645a53a053b842226641e0b
|
File details
Details for the file keeper_pam_webrtc_rs-0.2.8-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: keeper_pam_webrtc_rs-0.2.8-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 8.4 MB
- Tags: CPython 3.7+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd4205ac8cddb6042d53d10bcbb5ec76bd458eef799271e45b198b513d056985
|
|
| MD5 |
3ecf12edec91d888af59327ded710678
|
|
| BLAKE2b-256 |
0bd6231304035be1bb527dcf2d994ae37dcd0d02fb21aeff9acf02d9a5b40d46
|
File details
Details for the file keeper_pam_webrtc_rs-0.2.8-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: keeper_pam_webrtc_rs-0.2.8-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 8.2 MB
- Tags: CPython 3.7+, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f052dcb37ead63ddd01085294f2922fdafa377563bbe0de0f1cda0a69025279f
|
|
| MD5 |
8301fb22103c2d7c8af26e32db94a80d
|
|
| BLAKE2b-256 |
5ed042ed9df635cc88308c408e3eeab82f1e9f01931ddf9ea7f7baf3bf3fa8ff
|
File details
Details for the file keeper_pam_webrtc_rs-0.2.8-cp37-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: keeper_pam_webrtc_rs-0.2.8-cp37-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 7.4 MB
- Tags: CPython 3.7+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee42ad43d66b80c0082e8989c8ca0a3f4abc79c8d6ce731f9e25b39930f995fe
|
|
| MD5 |
94d746240d0ee801c56ed5b2347b5992
|
|
| BLAKE2b-256 |
88d5901397928883af172be82b07ae6ba6cf79bcb38b6a250322e01bfd87bde0
|
File details
Details for the file keeper_pam_webrtc_rs-0.2.8-cp37-abi3-macosx_10_7_x86_64.whl.
File metadata
- Download URL: keeper_pam_webrtc_rs-0.2.8-cp37-abi3-macosx_10_7_x86_64.whl
- Upload date:
- Size: 7.7 MB
- Tags: CPython 3.7+, macOS 10.7+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
17a5a34f8bc61a2f9f64319588ab48659c766ab59ae2a351dbcd35ed5afd1dab
|
|
| MD5 |
a9c3e263263cbdebfc3f4c930c39e1fb
|
|
| BLAKE2b-256 |
9d606a3e1530b1427b780f672d71adee28d2ecbe157694dfbb59d57354eac376
|