couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Garren Smith <gar...@apache.org>
Subject Re: CouchDB and Rust blogs
Date Wed, 24 Jun 2020 16:15:58 GMT
Hi Jan,

Thanks, one of my first attempts https://github.com/garrensmith/fortuna was
embedding v8 as a nif. It was my first nif and the implementation is wrong,
but it did prove it was possible and something we could consider going
forward. The one thing I'm not 100% sure of is moving V8 across threads.
Paul and I have had a discussion around that and we can't find good
evidence on whether moving V8 across threads is a good or bad idea. I
happened to speak to Ryan Dahl about it in the deno discord channel and he
recommended against it. I think a good starting point would be to use
https://github.com/rusterlium/rustler to create a nif and then use some of
the code from fortuna.

Also, I'm not sure embedding Deno would work. The Deno isolate is designed
to run in an async environment, so I think rather using standard v8 would
be better.

Cheers
Garren

On Wed, Jun 24, 2020 at 5:33 PM Jan Lehnardt <jan@apache.org> wrote:

> Congrats Garren, this is really cool! :)
>
> One related question: have you pondered embedding a JS engine into Erlang
> itself as well?
>
> Best
> Jan
> —
>
> > On 24. Jun 2020, at 16:21, Garren Smith <garren@apache.org> wrote:
> >
> > Hi All,
> >
> > I've been playing around with the rust language quite a bit recently and
> > using it to write some rust related side projects. I've recently
> finished a
> > CouchDB View Server written in Rust using V8. Here is a blog post about
> > that details the new View Server protocol for CouchDB 4.x and my Rust
> > implementation
> > https://www.garrensmith.com/blogs/fortuna-rs-couchdb-view-server
> >
> > A few weeks back I also wrote about a miniCouchDB implementation I wrote
> in
> > Rust during a Cloudant Hack week.
> > https://www.garrensmith.com/blogs/mini-couch-hack-week
> >
> > Cheers
> > Garren
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message