Implementing IOCP as a transport mechanism?

Hello Remobjects team,

are there any plans to implement IOCP as a transport mechanism in Remobjects SDK? I have read some discussions and blogs about it lately and it seems that this mechanism is suitable for much higher throughput and concurrency than Indy etc.


IOCP is hardly a transport. It is an API to handle multiple I/O requests, can be bound to any file handle including disk files and sockets. Yes, it seems to provide a more efficient threading model than the classic “dedicated thread for each request”. But there is an important disadvantage for us: unlike Indy this API is Windows only.
Due to some issues with Indy and Synapse, the libraries we currently use, there are discussions about creating our own channels and servers to go away from third party dependence. We’ll consider this API too but mind you, it is not a matter of the near future.

Best regards - Sergey

Synopse’s mORMot project leverage IOCP on Windows, its fast and cool, but yes, its not cross-platform. And yes, its much, much faster than Indy!

Maybe its better to use some frontend server, like NGINX, as frontend, and use some plugin to process request. For Linux/OSX, NGINX have best performance, much better then Apache!

Only Indy is cross-platform… but I personally never use it because Synapse is rock steady.

Has anyone tried msgconnect with RO?

I would like to ask if IOCP still on the roadmap. It would be a great addition for Windows based RO server! Please consider it

On a future version of RO, they will be implementing some of the protocols based on the Grijjy open source communication classes. Grijjy implemented IOCP on them, even if RO doesnt directly support them (hopefully they will) it could be possible to modify them so they can be used.

Here it is a link to their source regarding IOCP.