D Web Services Application Potential?
Etienne Cimon via Digitalmars-d
digitalmars-d at puremagic.com
Sat Jul 25 20:55:29 PDT 2015
On Sunday, 26 July 2015 at 03:04:21 UTC, Brandon Ragland wrote:
> On Sunday, 26 July 2015 at 02:53:12 UTC, Etienne Cimon wrote:
>> On 2015-07-25 22:35, Brandon Ragland wrote:
>>> On Sunday, 26 July 2015 at 00:46:58 UTC, Etienne Cimon wrote:
>>>> [...]
>>>
>>> In relation to DDB: Have you seen:
>>> https://github.com/buggins/ddbc
>>>
>>> It's most similar to the JDBC driver in Java. Currently
>>> supports MySQL,
>>> PostgreSQL and SQLite. That might be a good starting point to
>>> expand the
>>> SQL driver support for a web framework.
>>>
>>> I dug around some of your repos, too early to comment but
>>> I'll sift
>>> through more of it as time allows, see if I can't offer
>>> anything towards
>>> your current goals in the near future.
>>>
>>> I fully agree that D would be a great fit for web development.
>>>
>>> Thanks for the reply.
>>>
>>>
>>
>> Yes, the goal is to avoid libpq. A typical Vibe.d TCP
>> Connection is based on what you know as Green Threads, it's
>> called Tasks/Fibers in D. It means you have to avoid any
>> library that uses thread-blocking I/O because you're using 1
>> thread to handle all requests.
>
> That would make sense then.
>
> Was unaware vibe.d was using green threading. The JVM dropped
> green threads circa 1.2, a long time ago.
>
> I suppose the complexity of asynchronous I/O was never
> implemented to avoid these blocking issues with fibers/tasks?
There's a way to avoid the blocking by spawning more threads
(through worker tasks), but it's so much more efficient to use
native protocol implementations. After all, this is how D and
vibe.d can get the most req/s compared to the other native
frameworks. Somebody took the time to write a very elaborate
standoff and it shows a pretty accurate picture of it:
https://atilanevesoncode.wordpress.com/2013/12/05/go-vs-d-vs-erlang-vs-c-in-real-life-mqtt-broker-implementation-shootout/
More information about the Digitalmars-d
mailing list