Hacker News new | past | comments | ask | show | jobs | submit login
Plumbum: A lazy, constant-memory streaming data Rust library (srijs.github.io)
75 points by jaxondu on Oct 11, 2015 | hide | past | favorite | 13 comments



I see that a Kleisli arrow is involved somehow. I have no idea what a Kleisli arrow is. Would i have to learn in order to use this library?

Is the involvement of a Kleisli arrow strictly necessary?


Author here. Slightly simplifying, a Kleisli arrow is just a function from `A` to `M<B>`, and which is composable, similar to function composition:

    Kleisli<M, A, B> + Kleisli<M, B, C> = Kleisli<M, A, C>
Although it is an important part of how the conduits work, it is not strictly necessary for using the library.

Would it help if I clarified that somewhere, or would you rather not read "Kleisli" anywhere in the docs?


i think the word has its place in the doc, but with the kind of explanation you've just put :)


I was wondering the same, especially as it comes out naturally as it was something obvious


Another "taken" library name: https://plumbum.readthedocs.org/en/latest/ (I used it a bit and contributed a small usability patch a couple of years ago.)


Are duplicate library names a problem? It should be clear from context (Python vs Rust) which one people mean, and it seems unreasonable to expect people to continue creating unique names indefinitely.


We have one namespace in the Rust community to adhere to, and that's the crates.io namespace, where packages have to have unique names. I think that's all you need to watch out for realistically.


Can we please have plumbum-contrib named plumbus instead?

https://www.youtube.com/watch?v=eMJk4y9NGvE


Ah, I was hoping for a Rick and Morty comment. Such a great show


I always wondered how Plumbises were made.


Orange is an unfortunate color for links, since many people are probably used to it signifying "this link is invalid" from wikipedia.


Yeah, it wasn't until I read your comment that I realized that 'Kleisli' was documented. I suspect I've been making a similar mistake any time I peruse Rust documentation. (I don't write any Rust myself, or I assume I'd have figured it out by now.)


This is somewhat similar to the streaming producer/consumer from another rust crate: https://github.com/Geal/nom perhaps they could be interoperable.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: