Does anyone know or use this library?

Does anyone know or use this library?

http://synapse.ararat.cz

“The SYNAPSE library aims to create a complete library of classes and functions that would markedly simplify application programming of network communication using Winsock.

At first glance this effort might seem needless as there are many free components covering this area, However they mostly use asynchronous methods while SYNAPSE library operates in a synchronous method.

After having a look at ‘competitive’ libraries I must say all of them were created relatively early (for Delphi 1.0 and Win16). Thanks to cooperative multitasking, a synchronous access to Winsock was not possible. This is the reason why Microsoft added asynchronous mode to Winsock implementation.”

15 thoughts on “Does anyone know or use this library?


  1. I think of it as a great, bare bones network library. No components and all calls are synchronous. The synchronous part is great for us as our applications need to perform simultaneous network requests in 100s of threads. It also has some functionality that Indy doesn’t offer such as SNMPv3.


    It’s very mature and stable too. in fact, RemObjects use Synapse as an optional transport layer for it’s SDK product.


  2. I’ve used it in the past without issue, but is the project being well-maintained/supported, and by whom?  Overall, the Ararat site itself seems out of date, with only some sections having more recent updates.  There are fairly recent SVN updates from user “geby”.  Is that the original author?


  3. Ok, a little more investigation at SourceForge indicates that “geby” (Lukas Gebauer) has been steadily working on this project since late 2004. The mailing list seems alive and the issue tracker is fairly up-to-date as well.


  4. Синегубов Михаил – Our service is multi-threaded – has two http servers with session support on different ports, two-way TCP messaging, and I am now adding UDP “heartbeats”. We are using Indy, and that is not always fun.


  5. Lars Fosdal you should give atry to ICS. It has a totally different programming model: it is really asynchronous and event driven. For example, the HTTP server component is able to handle a large number of call without resorting to multithreading. This greatly simplifies development and debugging. ICS async nature make it a little bit more difficult to use for trivial tasks than other blocking libraries, but it becomes much easier for real world applications.


    Speaking about HTTP server, there is a high level component THttpAppSrv which ease development by abstracting each request. See the tutorial at http://wiki.overbyte.be/wiki/index.php/TutWebAppServer


  6. I totally agree with François Piette. ICS is a very good component set and follows the asynchronous model which makes it far more scalable than what Indy has to offer. It is also open source and is actively maintained by OverByte. Being asynchronous and event driven does change the way you interact with these components but it is well worth the effort. ICS is to Indy what TVirtualTreeView is to TTreeView/TListView.


  7. I was indirectly involved with Synapse in its early days –let them use one of my Linux boxes to test their LDAP stuff. This was something like a decade ago or so. And, I have seen Synapse to get better and better since.


    The good thing about it, IMO, is that it is SIMPLE to use: It gives you the basics and the rest is up to you.

Leave a Reply