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]
* 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
* Official Docker images with DMD and LDC wouldn't hurt
* Pre-compiled DMD that works on Alpine. Fully statically
linked DMD would help here
That's what I can think of for now.
[1] http://forum.dlang.org/post/[email protected]
Can you elaborate on how the TLS implementation needs to be
changed?
If someone wanted to work on rabbit bindings/wrapper, I might be
open to sponsoring that. I'm not in love with Rabbit (one node
uses more than 40% of memory so the node goes down, taking the
cluster with it. really?), but we use it currently.
I made a start on bindings for librabbitmq here:
https://github.com/kaleidicassociates/rabbitmq-d
Laeeth.