Enterprise TCP server and client with advanced connection handling, connection pooling, circuit breakers, and Rust FFI acceleration

dev-main 2025-07-15 15:28 UTC

This package is auto-updated.

Last update: 2025-07-15 15:28:47 UTC


README

Enterprise TCP server and client library with advanced connection handling, connection pooling, circuit breakers, and Rust FFI acceleration for maximum performance.

Installation

composer require highperapp/tcp

Quick Start

TCP Server

<?php
use HighPerApp\HighPer\TCP\TCPServer;
use HighPerApp\HighPer\TCP\Handlers\EnhancedTCPHandler;

$server = new TCPServer('0.0.0.0', 8080, [
    'max_connections' => 10000,
    'rust_acceleration' => true
]);

$handler = new EnhancedTCPHandler();
$server->setHandler($handler);
$server->run();

TCP Client

<?php
use HighPerApp\HighPer\TCP\Client\TCPClient;

$client = new TCPClient();
yield $client->connect('localhost', 8080);
yield $client->send('Hello Server!');
$response = yield $client->receive();
echo "Response: {$response}";
$client->close();

TCP Client Pool

<?php
use HighPerApp\HighPer\TCP\Client\TCPClientPool;

$pool = new TCPClientPool(['max_connections' => 100]);
$pool->createPool('api', [
    'host' => 'api.example.com',
    'port' => 8080,
    'min_connections' => 5,
    'max_connections' => 50
]);

$client = yield $pool->getClient('api');
yield $client->send('API Request');
$response = yield $client->receive();
$pool->releaseClient($client, 'api');

Features

  • Enterprise TCP Server: High-performance server with connection management
  • TCP Client with Connection Pooling: Efficient client with connection reuse
  • Circuit Breaker Pattern: Automatic failure detection and recovery
  • Rust FFI Acceleration: Optional high-performance mode with PHP fallback
  • Built-in Commands: Interactive command system for TCP connections
  • Real-time Statistics: Comprehensive monitoring and metrics
  • Zero-Downtime Integration: Seamless deployment updates
  • CLI Tools: Command-line utilities for testing and benchmarking

CLI Tools

TCP Server

# Start TCP server
composer tcp-server

# Or directly
php bin/tcp-server.php --host=0.0.0.0 --port=8080

TCP Client

# Send a message
composer tcp-client -- --host=localhost --port=8080 --message="Hello"

# Interactive mode
composer tcp-client -- --host=localhost --port=8080 --interactive

# Connection pool mode
composer tcp-client -- --host=localhost --port=8080 --pool --pool-size=10 --interactive

# Benchmark test
composer tcp-client -- --host=localhost --port=8080 --benchmark --connections=100 --requests=1000

Requirements

  • PHP 8.3+
  • AMPHP v3+
  • HighPerApp Zero-Downtime v3.0+

License

MIT