I took a look at the current Kitura (Swift-IBM) code and they appear to be using libdispatch, but only to put there blocking calls off the main queue: https://github.com/IBM-Swift/Kitura-net/blob/master/Sources/KituraNet/HttpServerSpi.swift#L52.
This might be because libdispatch on Linux is not mature, I’m not sure. I haven’t benchmarked it or anything so it might be sufficient for what you are looking for.
I’ve been looking into libuv which is the async IO library that Node.js is built on top of, but you would still have to wrap it in Swift. I’m currently trying to see what it would be like to replicate some of libuv’s functionality with libdispatch. libuv and libdispatch overlap on functionality quite a bit, but libdispatch has the benefit of using a block API instead of a function pointer API, which makes memory management easier in Swift. However, libuv has many additional features for setting up TCP connections and other networking constructs.
Hope that helps a little bit, I’m exploring this area myself!
On May 1, 2016, at 7:48 AM, Raphaël Wach via swift-users <firstname.lastname@example.org> wrote:
Hi Swift programmers,
I would like to ask for opinions or feedback about server side application with swift.
Is it realistic to think about creating an application server with swift ?
I would love to develop games with both client and server in Swift and get rid of any other technologies in my stack but I am not sure that it’s a good idea for now.
I know that IBM started to allows server side Swift in their cloud though probably not many people use it for now as it’s a very recent work.
So does that seem possible for you to develop, host and maintain a game server with Swift or should I keep using more common server side technologies like C++, Node.js… ?
Hopefully, you can give me advices and help me to choose the best solution.
swift-users mailing list