July 25, 2015 D Web Services Application Potential? | ||||
---|---|---|---|---|
| ||||
Hi All, Not entirely certain if there is a decent D web applications server implementation as of yet, but if there is a project going on, I'd love to have a gander. On the off-chance there isn't one, who would be interested in going at it, call it, a 'group' project. I've been yearning for a D web app server for a while, as most of my day to day work is done on Java EE containers (think Glassfish, Weblogic, etc. Java Beans, lalala) and the insane system usage has bothered me from day one. There's Wt for C++, although I don't see much coming from that, though the concept is grand. Rust has a few up and coming web server frameworks as well. D could really excel here. -Thoughts? Am I crazy (probably)? |
July 25, 2015 Re: D Web Services Application Potential? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Brandon Ragland | On Saturday, 25 July 2015 at 22:47:59 UTC, Brandon Ragland wrote: > Hi All, > > Not entirely certain if there is a decent D web applications server implementation as of yet, but if there is a project going on, I'd love to have a gander. > > On the off-chance there isn't one, who would be interested in going at it, call it, a 'group' project. > > I've been yearning for a D web app server for a while, as most of my day to day work is done on Java EE containers (think Glassfish, Weblogic, etc. Java Beans, lalala) and the insane system usage has bothered me from day one. > > There's Wt for C++, although I don't see much coming from that, though the concept is grand. Rust has a few up and coming web server frameworks as well. > > D could really excel here. > > -Thoughts? Am I crazy (probably)? Have you seen [vibe.d](http://vibed.org/)? |
July 26, 2015 Re: D Web Services Application Potential? | ||||
---|---|---|---|---|
| ||||
Posted in reply to sigod | On Saturday, 25 July 2015 at 23:23:36 UTC, sigod wrote:
> On Saturday, 25 July 2015 at 22:47:59 UTC, Brandon Ragland wrote:
>> Hi All,
>>
>> Not entirely certain if there is a decent D web applications server implementation as of yet, but if there is a project going on, I'd love to have a gander.
>>
>> On the off-chance there isn't one, who would be interested in going at it, call it, a 'group' project.
>>
>> I've been yearning for a D web app server for a while, as most of my day to day work is done on Java EE containers (think Glassfish, Weblogic, etc. Java Beans, lalala) and the insane system usage has bothered me from day one.
>>
>> There's Wt for C++, although I don't see much coming from that, though the concept is grand. Rust has a few up and coming web server frameworks as well.
>>
>> D could really excel here.
>>
>> -Thoughts? Am I crazy (probably)?
>
> Have you seen [vibe.d](http://vibed.org/)?
I have not seen this before, just took a look at the project and it seems very well placed.
I'll have to look into this more as time permits.
Appreciate being pointed towards this, very useful.
|
July 26, 2015 Re: D Web Services Application Potential? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Brandon Ragland | On 2015-07-25 18:47, Brandon Ragland wrote: > Hi All, > > Not entirely certain if there is a decent D web applications server > implementation as of yet, but if there is a project going on, I'd love > to have a gander. > > On the off-chance there isn't one, who would be interested in going at > it, call it, a 'group' project. > > I've been yearning for a D web app server for a while, as most of my day > to day work is done on Java EE containers (think Glassfish, Weblogic, > etc. Java Beans, lalala) and the insane system usage has bothered me > from day one. > > There's Wt for C++, although I don't see much coming from that, though > the concept is grand. Rust has a few up and coming web server frameworks > as well. > > D could really excel here. > > -Thoughts? Am I crazy (probably)? > > Not crazy. I've been working towards exactly that as hard I could (see on https://github.com/etcimon/), seeing how D would be the best language to write any web backend with. I've since worked on writing all the architecture in D: a new TLS library Botan, along with libhttp2 for HTTP/2 support and an async event loop (TCP/UDP/FileSystem/FileWatcher/DNS/Timers) library. I've written all the "glue" code to have it in the vibe.d framework and tested it as thoroughly as I could. I now consider it an achievement and use it in my web applications. I'm currently concentrating on improving an async postgresql driver called DDB and adding transactions, Json, TLS, Listen/Notify, etc. I think my next priority would be to rewrite the back-end of http://www.cosmocms.org with D and the vibe.web.web Web Interface, and Redis+Postgresql (sessions in redis). It's about 4k-5k LOC I think a good and necessary library would be for cross-platform, async DNS. I've been looking at this one in particular: https://github.com/miekg/dns |
July 26, 2015 Re: D Web Services Application Potential? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Etienne Cimon | On Sunday, 26 July 2015 at 00:46:58 UTC, Etienne Cimon wrote: > On 2015-07-25 18:47, Brandon Ragland wrote: >> Hi All, >> >> Not entirely certain if there is a decent D web applications server >> implementation as of yet, but if there is a project going on, I'd love >> to have a gander. >> >> On the off-chance there isn't one, who would be interested in going at >> it, call it, a 'group' project. >> >> I've been yearning for a D web app server for a while, as most of my day >> to day work is done on Java EE containers (think Glassfish, Weblogic, >> etc. Java Beans, lalala) and the insane system usage has bothered me >> from day one. >> >> There's Wt for C++, although I don't see much coming from that, though >> the concept is grand. Rust has a few up and coming web server frameworks >> as well. >> >> D could really excel here. >> >> -Thoughts? Am I crazy (probably)? >> >> > > Not crazy. I've been working towards exactly that as hard I could (see on https://github.com/etcimon/), seeing how D would be the best language to write any web backend with. I've since worked on writing all the architecture in D: a new TLS library Botan, along with libhttp2 for HTTP/2 support and an async event loop (TCP/UDP/FileSystem/FileWatcher/DNS/Timers) library. > > I've written all the "glue" code to have it in the vibe.d framework and tested it as thoroughly as I could. I now consider it an achievement and use it in my web applications. > > I'm currently concentrating on improving an async postgresql driver called DDB and adding transactions, Json, TLS, Listen/Notify, etc. > > I think my next priority would be to rewrite the back-end of http://www.cosmocms.org with D and the vibe.web.web Web Interface, and Redis+Postgresql (sessions in redis). It's about 4k-5k LOC > > I think a good and necessary library would be for cross-platform, async DNS. I've been looking at this one in particular: https://github.com/miekg/dns 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. |
July 26, 2015 Re: D Web Services Application Potential? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Brandon Ragland | On 2015-07-25 22:35, Brandon Ragland wrote:
> On Sunday, 26 July 2015 at 00:46:58 UTC, Etienne Cimon wrote:
>> On 2015-07-25 18:47, Brandon Ragland wrote:
>>> Hi All,
>>>
>>> Not entirely certain if there is a decent D web applications server
>>> implementation as of yet, but if there is a project going on, I'd love
>>> to have a gander.
>>>
>>> On the off-chance there isn't one, who would be interested in going at
>>> it, call it, a 'group' project.
>>>
>>> I've been yearning for a D web app server for a while, as most of my day
>>> to day work is done on Java EE containers (think Glassfish, Weblogic,
>>> etc. Java Beans, lalala) and the insane system usage has bothered me
>>> from day one.
>>>
>>> There's Wt for C++, although I don't see much coming from that, though
>>> the concept is grand. Rust has a few up and coming web server frameworks
>>> as well.
>>>
>>> D could really excel here.
>>>
>>> -Thoughts? Am I crazy (probably)?
>>>
>>>
>>
>> Not crazy. I've been working towards exactly that as hard I could (see
>> on https://github.com/etcimon/), seeing how D would be the best
>> language to write any web backend with. I've since worked on writing
>> all the architecture in D: a new TLS library Botan, along with
>> libhttp2 for HTTP/2 support and an async event loop
>> (TCP/UDP/FileSystem/FileWatcher/DNS/Timers) library.
>>
>> I've written all the "glue" code to have it in the vibe.d framework
>> and tested it as thoroughly as I could. I now consider it an
>> achievement and use it in my web applications.
>>
>> I'm currently concentrating on improving an async postgresql driver
>> called DDB and adding transactions, Json, TLS, Listen/Notify, etc.
>>
>> I think my next priority would be to rewrite the back-end of
>> http://www.cosmocms.org with D and the vibe.web.web Web Interface, and
>> Redis+Postgresql (sessions in redis). It's about 4k-5k LOC
>>
>> I think a good and necessary library would be for cross-platform,
>> async DNS. I've been looking at this one in particular:
>> https://github.com/miekg/dns
>
> 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.
|
July 26, 2015 Re: D Web Services Application Potential? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Etienne Cimon | 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?
|
July 26, 2015 Re: D Web Services Application Potential? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Brandon Ragland | 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/ |
July 26, 2015 Re: D Web Services Application Potential? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Brandon Ragland | On 26/07/2015 10:47 a.m., Brandon Ragland wrote: > Hi All, > > Not entirely certain if there is a decent D web applications server > implementation as of yet, but if there is a project going on, I'd love > to have a gander. > > On the off-chance there isn't one, who would be interested in going at > it, call it, a 'group' project. > > I've been yearning for a D web app server for a while, as most of my day > to day work is done on Java EE containers (think Glassfish, Weblogic, > etc. Java Beans, lalala) and the insane system usage has bothered me > from day one. > > There's Wt for C++, although I don't see much coming from that, though > the concept is grand. Rust has a few up and coming web server frameworks > as well. > > D could really excel here. > > -Thoughts? Am I crazy (probably)? I wrote Cmsed[0], web service framework which uses Vibe.d and Dvorm (ORM)[1]. They are both sunsetted. I'm currently working on a web server[2] that will ultimately replace a good bit of what Vibe.d is currently being used for. Which will be using libasync[3] (backend for vibe.d but purely in D) instead of Vibe.d. Of course progress is slow and my current set of code is not up in the repository as I wrote it on stream[4]. My intention is there, is once std.experimental.image gets more boring again / can't do much on stream I'll start work on it again. Once it comparable to what I've got on repo, I'll update it. In terms of what the web server will be like, Apache httpd config syntax[5] but a LOT more dynamic ala JSP style. Once web server is done then I'll continue with my web service framework based upon Cmsed. Most of that code is ready to go. It's just things like reloading and templates that need rewriting. [0] https://github.com/rikkimax/cmsed [1] https://github.com/rikkimax/dvorm [2] https://github.com/DNetDev/webserver [3] https://github.com/etcimon/libasync [4] https://www.livecoding.tv/alphaglosined/ [5] https://github.com/DNetDev/apache_httpd_format |
July 26, 2015 Re: D Web Services Application Potential? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Brandon Ragland | On Saturday, 25 July 2015 at 22:47:59 UTC, Brandon Ragland wrote:
> Hi All,
>
> Not entirely certain if there is a decent D web applications server implementation as of yet, but if there is a project going on, I'd love to have a gander.
>
> On the off-chance there isn't one, who would be interested in going at it, call it, a 'group' project.
>
> I've been yearning for a D web app server for a while, as most of my day to day work is done on Java EE containers (think Glassfish, Weblogic, etc. Java Beans, lalala) and the insane system usage has bothered me from day one.
>
> There's Wt for C++, although I don't see much coming from that, though the concept is grand. Rust has a few up and coming web server frameworks as well.
>
> D could really excel here.
>
> -Thoughts? Am I crazy (probably)?
Sometimes I have the same thoughts. Despite that I use vibe.d in experimental project at work.
|
Copyright © 1999-2021 by the D Language Foundation