Just use a pipe. Part of the std lib. > On Nov 21, 2019, at 9:47 PM, Marcin Romaszewicz <marc...@gmail.com> wrote: > > > Hi All, > > Before I reinvent the wheel, and because this wheel is particularly tricky to > get right, I was wondering if anyone was aware of a a library providing > something like this > > - conforms to io.Reader > - conforms to io.Writer > - Contains a buffer of fixed size, say, 64MB. If you try to write when the > buffer is too full, write blocks. When you try to read from an empty one, > read blocks. > > This describes the behavior of make(chan byte, 64 * MB), however, it doesn't > seem to be efficient to do this with a channel. Say I'm transferring a few > hundred GB via this mechanism. A chan of byte would need a few hundred > billion byte writes, and a few hundred billion reads. Doesn't sound like it > could be efficient at all. You can't implement this with a channel of []byte, > because you'd violate your buffering limit if you pass too large of a byte > array, so you'd have to chop things up into blocks, but maybe that's simpler > than a full fledged blocking ring buffer. > > Anyhow, I've implemented such things in various OS level plumbing, so I know > I can do it in Go much more easily, just hoping to avoid it :) > > Thanks for any advice, > -- Marcin > -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/golang-nuts/CA%2Bv29LsvbVU1oxBYz6wKO50-xNVPQ6-wRa7Dvhq4uY%3Du-FKigA%40mail.gmail.com.
-- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/B9251FAA-9774-4306-A356-A88F54441980%40ix.netcom.com.