Announcing libasync, a cross-platform D event loop

Szymon Gatner via Digitalmars-d digitalmars-d at puremagic.com
Wed Sep 24 08:45:37 PDT 2014


On Wednesday, 24 September 2014 at 13:13:34 UTC, Etienne wrote:
> It's finally here: https://github.com/etcimon/libasync
>
> We all know how event loops are the foundation of more popular 
> libraries Qt and Nodejs.. we now have a natively compiling 
> async library entirely written in D.
>
> This event library was tested on Win32, Linux x64, Mac OS x64, 
> with DMD 2.066, offers the more low-level async objects: 
> timers, file i/o, dns resolver, tcp, udp, listeners, signals 
> (cross-thread), notifications (same thread), and more recently 
> (and with great efforts for implementing with OS X / BSD) a 
> directory watcher.
>
> e.g. You can run a timer with:
>
> 	import std.datetime; import std.stdio; import libasync.all;
> 	EventLoop evl = new EventLoop;
> 	auto timer = new AsyncTimer(evl);
> 	timer.duration(2.seconds).periodic().run({ writeln("Another 2 
> seconds have passed"); });
> 	while(evl.loop()) continue;
>
> The tests may be most revealing: 
> https://github.com/etcimon/libasync/blob/master/source/libasync/test.d
>
> A (lightly tested) vibe.d driver using all those async objects 
> is also available and currently ongoing a pull request:
>
> https://github.com/etcimon/vibe.d/tree/native-events
>
> The incentive was to make vibe.d compile in completely native 
> D, I'm now moving onto a botan C++ => D wrapper for it, I plan 
> on moving objects to D over the years until the TLS library can 
> be completely native. I thank Walter for the efforts on 
> extern(C++)
>
> Finally, I release this on the basis of an MIT license, looking 
> forward to seeing our community flourishing with yet more 
> native libraries. Code on

Do I understand correctly that it is similar library to 
boost.asio (EventLoop being equivalent of asio::io_service)?


More information about the Digitalmars-d mailing list