DConf 2013 Day 2 Talk 4: Web Development in D by Vladimir Panteleev

Graham Fawcett fawcett at uwindsor.ca
Mon Jun 3 16:52:28 PDT 2013


On Monday, 3 June 2013 at 22:11:39 UTC, Nick Sabalausky wrote:
> Referring to the last question: Hibernate-D is *not* based on 
> Vibe.d.
> But I have already been looking into the idea of using 
> Hibernate-D and
> Vibe.d together. In fact, my recent commits to mysql-native 
> adding
> support for Phobos sockets was a big part of that.
>
> The main issue is that Vibe.d programs should be using Vibe.d
> sockets instead of ordinary sockets (I don't know what would 
> happen if
> you don't use Vibe.d sockets. My guess is it just wouldn't 
> happen
> asynchronously, but Sonke could answer that better). But 
> Hibernate-D
> aims to be usable even without Vibe.d, so it uses Phobos 
> sockets for
> MySQL (via a modified fork of an older mysql-native), and for 
> PostgreSQL
> and SQLite it just uses the C libs.
>
> I've already converted mysql-native to support both Vibe.d and 
> Phobos
> sockets, and I've already created a branch of Hibernate-D that 
> makes
> Hibernate-D use the new official mysql-native and therefore
> automatically switch to Vibe.d sockets whenever Vibe.d is being 
> used
> (detected by -version=Have_vibe_d, which is automatically added 
> by DUB
> is you're using both Vibe.d and DUB). But G^DF*^@CKD*#MMIT I 
> *just now*
> noticed that commit (and the pull request I could have sworn I 
> made)
> seems to have completely disappeared without a trace...Shit, I 
> gotta
> figure out what happened and where the hell it went...
>
> Ugh, anyway, I've been digging through Hibernate-D's source the 
> last
> couple days checking out what else might be needed. As long as 
> I get my
> magical disappearing commit resurrected, it *looks* to me like 
> the only
> other thing that might be needed is to bypass Hibernate-D's 
> built-in
> connection pool. Even that might still work as-is (I haven't 
> tried),
> but it's not really necessary for Vibe.d users since Vibe.d has 
> its
> own fiber-safe connection pool system. But it's pretty easy to
> bypass Hibernate-D's connection pool in favor of Vibe.D's
> connection pool in user-code without even patching Hibernate-D.
>
> AFAICT so far, it looks like everything else in Hibernate-D 
> should work
> fine with Vibe.d.
>
> tl;dr:
>
> Hibernate-D does not use Vibe.d, but I have personal interest
> in using them together and I've been checking into it. Not sure 
> what
> can be done about PostgreSQL and SQLite (I *think* they'll work 
> but
> just not asynchronously - not sure what else can/should be 
> done, I'd
> have to ask Sonke). But for MySQL, all you *should* need is a 
> patch or
> two that I've been working on.

Regarding PostgreSQL, keep in mind that it has an async API, 
which would be handy in building a Vibe-friendly wrapper:

http://www.postgresql.org/docs/devel/static/libpq-async.html

Graham



More information about the Digitalmars-d-announce mailing list