Oh btw I think a generic event loop is important too, for gui and
non gui stuff.
I slapped something together to get started with that too:
https://github.com/adamdruppe/misc-stuff-including-D-programming-language-web-stuff/blob/master/eventloop.d
and even (optionally) use it in my (cross platform btw)
terminal.d:
https://github.com/robik/ConsoleD/blob/master/terminal.d
But since it isn't something I personally use a lot it just gets
updated when something comes up, more often than not from other
people using it.