
Plumbum: A lazy, constant-memory streaming data Rust library - jaxondu
https://srijs.github.io/rust-plumbum/plumbum/
======
twic
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?

~~~
srijs
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?

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

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

~~~
startling
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.

~~~
kzrdude
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.

------
lumpypua
Can we please have plumbum-contrib named plumbus instead?

[https://www.youtube.com/watch?v=eMJk4y9NGvE](https://www.youtube.com/watch?v=eMJk4y9NGvE)

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

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

~~~
mockery
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.)

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

