Skip to content

Latest commit

 

History

History
116 lines (84 loc) · 4.54 KB

README.en.md

File metadata and controls

116 lines (84 loc) · 4.54 KB

Delphi Cross Platform Socket Communication Library

Author: WiNDDRiVER(soulawing@gmail.com)

Donate

If you find this project useful, please consider making a donation.

PaypalMe


Update list

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

  • HTTPS Benchmark image

  • HTTP Server(Linux-aarch64) image

  • HTTP Server(Linux-loongarch64) image

  • HTTP Client(Linux-aarch64) image

  • HTTP Client(Linux-loongarch64) image

  • WebSocket Server(Linux-aarch64) image

  • WebSocket Server(Linux-loongarch64) image

  • WebSocket Client(Linux-aarch64) image

  • WebSocket Client(Linux-loongarch64) image

  • HTTP(服务端为ubuntu 16.04 desktop) 20170607110011

  • HTTPS(服务端为ubuntu 16.04 desktop) 20170607142650