I want to share my experiences with D and the platform as a
service solution Cloud Foundry. Cloud Foundry supports any
development language as long it is runnable on Linux 64 bit and
the application has a http Server listening on a port which Cloud
Foundry provides you using system environment variable PORT.
I am used to develop on Windows. Using VirtuaBox I created a
Linux virtual machine. I defined a shared directory between my
windows host system and the Linux virtual machine. In Addition I
use Putty as SSH client. In the Putty terminal I execute dub and
after that the Cloud Foundry console application to push the
binary to the cloud.
I tried different http servers available for D. At the end I
decided to build my own.
vibe-d: The linking time of a vibe-d application on a Linux
system is quite high, I think this is due to the dependencies
like pthreads and so on. Also the binary size is also quite high.
As far as I remember around 20 mb for a test application. The
size matters as you have to upload the application again and
again. Cloud Foundry provides some shared objects libraries. In
case you have special requirements like pthreads you must create
a build pack. With a build pack you can download external
dependencies and install them while pushing the binary to the
cloud. There already exists build packs for vibe-d but they are
outdated. They run a long time and then stops.
From windows I know vibe-d is a great library but on Linux out of
the box it doesn't make fun due to the usage of external
dependencies.
I also had a look at the arsdnet http server. But I didn't
achieved to get my scenario running. In addition to my http
server component I have a thread which executes 10 some database
calls and some http requests. If I am not completely wrong the
scenario of starting a thread in addition to the main server
thread is not supported unless I duplicate a big amount of coding
from the template "main" of the arsdnet http server component.
In the end I build my own very simple http server component. By
using the pure phobos library compiling and linking is super fast
and the size of the full application is around 8 mb. Compile,
link and pushing to the cloud is possible in less than a minute.
In sum, it is just fun to develop cloud applications with D!