D for microservices

Joakim dlang at joakim.fea.st
Mon Oct 23 15:35:55 UTC 2017


On Monday, 23 October 2017 at 12:08:52 UTC, Jacob Carlborg wrote:
> On 2017-10-22 04:48, Joakim wrote:
>> I just read the following two week-old comment on the ldc 
>> issue tracker, when someone tried to run D on Alpine linux:
>> 
>> "For now everything works(?) but I think the process could be 
>> improved.. Would be really cool to have LDC easily building 
>> alpine containers + static D binaries for microservice and 
>> tooling development. I'm pretty tired of reading Go code :)"
>> https://github.com/ldc-developers/ldc/issues/2341#issuecomment-334626550
>> 
>> It strikes me that microservices are a great way for new 
>> programming languages like D to get tried and gain some 
>> uptake, but that D might not be that easy to deploy to that 
>> scenario yet.
>> 
>> So this is a question for those deploying microservices, as 
>> I'm not in that field, what can the D devs do to make it as 
>> easy as possible to get D microservices up and running, make 
>> some Docker and Alpine containers with ldc/dub/vibe.d 
>> preinstalled publicly available?  What else, what kinds of 
>> libraries do you normally use?
>> 
>> This is a niche that D and all newer languages should target. 
>> How do we do it?
>
> * Support full static linking using DMD, which requires the TLS 
> implementation to be modified
> * Support musl as the standard C library, I've discussed that 
> before [1]

I can probably whip this together in a couple days, as I added 
the Bionic support before, but it's not something I need, so it'd 
just be a donation for you and others.  That's why I'm trying to 
figure out who exactly wants this and if others want to chip in.

> * Database drivers for the common databases (PostgreSQL, MySQL, 
> SQLite) compatible with vibe.d
> * Database driver abstraction on top of the above drivers, 
> perhaps some lightweight ORM library
> * RabbitMQ library compatible with vibe.d
> * Serialization to/from JSON and YAML

Some of this stuff is on dub, but nothing that interests me or 
that I'd chip in with.  Good to see that RabbitMQ supports binary 
protocols like AMQP and MQTT though, would be nuts if it were all 
just text like STOMP or especially JSON/YAML.

> * Official Docker images with DMD and LDC wouldn't hurt
> * Pre-compiled DMD that works on Alpine. Fully statically 
> linked DMD would help here

I'm sure someone could put these together if the above stuff 
worked.  The question is who's interested in volunteering to help 
put this all together?


More information about the Digitalmars-d mailing list