Delphi Cross Platform Socket Communication Library
December 5, 2025 · View on GitHub
Author: WiNDDRiVER(soulawing@gmail.com)
中文
Update list
2025.04.10
- ICrossHttpClient supports binding of local ports (LocalPort property)
- ICrossSslConnection supports getting ssl details (GetSSLInfo method)
- Some other small features improvements and corrections
2023.09.18
- Supports FPC 3.3.1
- Supports OpenSSL 3.x
- Added HTTP client ICrossHttpClient (Supports sending data compressed with gzip/deflate)
- Added WebSocket client ICrossWebSocket
- The HTTP server supports receiving gzip/deflate compressed data
- Partial code refactoring
- Some minor bug fixes
2020.07.07
- ICrossHttpServer and ICrossWebSocketServer support both http and https
Thanks to xlnron for his help
2019.02.17
- Fix the problem of memory leakage caused by TIoEventThread
thank viniciusfbb for finding and fixing the problem
- Fix memory leak caused by [weak]
when used with a third-party memory management library, there will be a memory leak. robertodellapasqua found the problem and pony5551 finally found the cause of the problem. Thank you very much! This should be a defect in Delphi's [weak] internal implementation. The problem was solved after replacing [weak] with [unsafe]
2019.01.15
-
increase mbedtls support
- mbedtls enabling method: turn on __CROSS_SSL__ and __MBED_TLS__ in the engineering compilation option, and add the directory under MbedObj to the Library path of the corresponding platform
- mbedtls support is not stable at present, please do not use it in production environment
2017.08.22
- code refactoring, with many modifications, see source code for details
- Several new interface have been added. See demos for usage
- ICrossSocket
- ICrossSslSocket
- ICrossServer
- ICrossSslServer
Features
-
Use different IO models for different platforms:
- IOCP
Windows
- KQUEUE
FreeBSD(MacOSX, iOS...)
- EPOLL
Linux(Linux, Android...)
-
Supports extremely high concurrency
- Windows
can run more than 100000 concurrent number, need to modify the registry to adjust the default maximum port number
- Mac
preliminary tests were conducted. the test environment was OSX 10.9.5 in the virtual machine. even if the limit on the number of handles in the system was modified, can only open more than 32000 concurrent connections at most, perhaps OSX Server version can support higher concurrency
-
IPv4 and IPv6 are supported at the same time.
-
Zero Memory Copy
Passed the test
- Windows
- OSX
- iOS
- Android
- Linux
Suggested Development Environment
- To give full play to cross-platform functions, please use Delphi 10.2 Tokyo or higher
- The minimum requirement is to support the Delphi version of generic and anonymous functions. I am not sure from which version generic and anonymous functions are supported.
- It is recommended to use FPC version 3.3.1 or higher
Some Test Screenshots
-
HTTP Benchmark
-
HTTPS Benchmark
-
HTTP Server(Linux-aarch64)
-
HTTP Server(Linux-loongarch64)
-
HTTP Client(Linux-aarch64)
-
HTTP Client(Linux-loongarch64)
-
WebSocket Server(Linux-aarch64)
-
WebSocket Server(Linux-loongarch64)
-
WebSocket Client(Linux-aarch64)
-
WebSocket Client(Linux-loongarch64)
-
HTTP(服务端为ubuntu 16.04 desktop)

-
HTTPS(服务端为ubuntu 16.04 desktop)
