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

Reply via email to