Thread overview
dfuse 0.3.0 - D Language bindings for Fuse
Jul 30, 2014
David Soria Parra
Jul 30, 2014
w0rp
Jul 31, 2014
Dicebot
Jul 31, 2014
Johannes Pfau
Jul 31, 2014
Sönke Ludwig
Jul 31, 2014
David Soria Parra
Jul 31, 2014
David Soria Parra
July 30, 2014
Hi,

We are happy to announce the release of 'dfuse', a high level D language binding
for fuse (http://fuse.sourceforge.net). It supports libfuse >= 2.8 and works on
both Linux and MacOS (osxfuse). You can find the project at:

    https://github.com/facebook/dfuse

We at Facebook have been working on dfuse for the last weeks and are actively
using it in production. While the interface is still limited, we hope to work
towards a full featured fuse binding.

If you want to get involved, feel free to sent pull requests, submit issues and
direct any questions about dfuse to the D mailinglist or ping 'dsop' on IRC.

- David Soria Parra
July 30, 2014
On Wednesday, 30 July 2014 at 17:05:25 UTC, David Soria Parra wrote:
> Hi,
>
> We are happy to announce the release of 'dfuse', a high level D language binding
> for fuse (http://fuse.sourceforge.net). It supports libfuse >= 2.8 and works on
> both Linux and MacOS (osxfuse). You can find the project at:
>
>     https://github.com/facebook/dfuse
>
> We at Facebook have been working on dfuse for the last weeks and are actively
> using it in production. While the interface is still limited, we hope to work
> towards a full featured fuse binding.
>
> If you want to get involved, feel free to sent pull requests, submit issues and
> direct any questions about dfuse to the D mailinglist or ping 'dsop' on IRC.
>
> - David Soria Parra

Awesome. Thank you and the guys at Facebook for writing this. I was working on my own fuse bindings so I could try writing my own adb filesystem for fun, but now this is out I'll just use this and submit bug reports or pull requests when I notice any issues.
July 30, 2014
On 7/30/14, 10:05 AM, David Soria Parra wrote:
> Hi,
>
> We are happy to announce the release of 'dfuse', a high level D language
> binding
> for fuse (http://fuse.sourceforge.net). It supports libfuse >= 2.8 and
> works on
> both Linux and MacOS (osxfuse). You can find the project at:
>
>      https://github.com/facebook/dfuse
>
> We at Facebook have been working on dfuse for the last weeks and are
> actively
> using it in production. While the interface is still limited, we hope to
> work
> towards a full featured fuse binding.
>
> If you want to get involved, feel free to sent pull requests, submit
> issues and
> direct any questions about dfuse to the D mailinglist or ping 'dsop' on
> IRC.
>
> - David Soria Parra

https://www.facebook.com/dlang.org/posts/893875583959457

http://www.reddit.com/r/programming/comments/2c5n5r/facebook_is_open_sourcing_dfuse_d_language/

https://twitter.com/D_Programming/status/494531403376492545


Andrei
July 31, 2014
Great to see more D contributions from Facebook ^_^
July 31, 2014
Am Wed, 30 Jul 2014 17:05:20 +0000
schrieb "David Soria Parra" <davidsp@fb.com>:

> Hi,
> 
> We are happy to announce the release of 'dfuse', a high level D
> language binding
> for fuse (http://fuse.sourceforge.net). It supports libfuse >=
> 2.8 and works on
> both Linux and MacOS (osxfuse). You can find the project at:
> 
>      https://github.com/facebook/dfuse
> 
> We at Facebook have been working on dfuse for the last weeks and
> are actively
> using it in production. While the interface is still limited, we
> hope to work
> towards a full featured fuse binding.
> 
> If you want to get involved, feel free to sent pull requests,
> submit issues and
> direct any questions about dfuse to the D mailinglist or ping
> 'dsop' on IRC.
> 
> - David Soria Parra

Awesome!

Will this be added to code.dlang.org?
There's a question on reddit regarding performance. I'd guess
performance should be quite good in general, but the simple example
throws/allocates* Exceptions on missing files. Does this perform well
enough?

* I guess in this case you could 'cache' the exception in a
  global variable, but druntime still allocates the stack trace (only
  once though). Druntime uses some tricks to avoid these allocations
  for OutOfMemory errors and this trick should probably work for dfuse
  as well, but I still wonder if it isn't easier to simply return a
  result code from getattr and readdir.
July 31, 2014
Am 31.07.2014 16:00, schrieb Johannes Pfau:
> Am Wed, 30 Jul 2014 17:05:20 +0000
> schrieb "David Soria Parra" <davidsp@fb.com>:
>
>> Hi,
>>
>> We are happy to announce the release of 'dfuse', a high level D
>> language binding
>> for fuse (http://fuse.sourceforge.net). It supports libfuse >=
>> 2.8 and works on
>> both Linux and MacOS (osxfuse). You can find the project at:
>>
>>       https://github.com/facebook/dfuse
>>
>> We at Facebook have been working on dfuse for the last weeks and
>> are actively
>> using it in production. While the interface is still limited, we
>> hope to work
>> towards a full featured fuse binding.
>>
>> If you want to get involved, feel free to sent pull requests,
>> submit issues and
>> direct any questions about dfuse to the D mailinglist or ping
>> 'dsop' on IRC.
>>
>> - David Soria Parra
>
> Awesome!
>
> Will this be added to code.dlang.org?

Funnily, a FUSE bindings package was added just some days ago:
http://code.dlang.org/packages/fuse

Initially, I thought that would be the same package, but it's not.

July 31, 2014
On Thursday, 31 July 2014 at 14:02:28 UTC, Johannes Pfau wrote:
>
> Awesome!
>
> Will this be added to code.dlang.org?
> There's a question on reddit regarding performance. I'd guess
> performance should be quite good in general, but the simple example
> throws/allocates* Exceptions on missing files. Does this perform well
> enough?
>
> * I guess in this case you could 'cache' the exception in a
>   global variable, but druntime still allocates the stack trace (only
>   once though). Druntime uses some tricks to avoid these allocations
>   for OutOfMemory errors and this trick should probably work for dfuse
>   as well, but I still wonder if it isn't easier to simply return a
>   result code from getattr and readdir.

Hi Johannes,

the choice of using throw for exception was mostly to follow the python-fuse bindings which we initially used for a prototype. I agree that we could instead return a value for performance considerations. However there is a balance of how many errors you expect and, as far as I am concerned, the more convenient way of reporting errors using exceptions up the callstack.
July 31, 2014
On Thursday, 31 July 2014 at 14:32:21 UTC, Sönke Ludwig wrote:
> Am 31.07.2014 16:00, schrieb Johannes Pfau:
>> Am Wed, 30 Jul 2014 17:05:20 +0000
>> schrieb "David Soria Parra" <davidsp@fb.com>:
>>
>>
>> Awesome!
>>
>> Will this be added to code.dlang.org?
>
> Funnily, a FUSE bindings package was added just some days ago:
> http://code.dlang.org/packages/fuse
>
> Initially, I thought that would be the same package, but it's not.

Interesting. When we started with dfuse the mentioned fuse library was in a not good enough state. Still while it seems to offer all the functionality of the high level fuse API, it doesn't do conversions to D types such as const(char)[] and still passes around pointers. My overall goal is to use D's types and strength to make an easier interface.