Lightwight socket IO wrapper

Cameron Simpson cs at
Mon Sep 21 23:42:51 CEST 2015

On 21Sep2015 18:07, Chris Angelico <rosuav at> wrote:
>On Mon, Sep 21, 2015 at 5:59 PM, Marko Rauhamaa <marko at> wrote:
>> Chris Angelico <rosuav at>:
>>> On Mon, Sep 21, 2015 at 4:27 PM, Cameron Simpson <cs at> wrote:
>>>> For sizes below 128, one byte of length. For sizes 128-16383, two bytes. And
>>>> so on. Compact yet unbounded.
>>> [...]
>>> It's generally a lot faster to do a read(2) than a loop with any
>>> number of read(1), and you get some kind of bound on your allocations.
>>> Whether that's important to you or not is another question, but
>>> certainly your chosen encoding is a good way of allowing arbitrary
>>> integer values.
>> You can read a full buffer even if you have a variable-length length
>> encoding.
>Not sure what you mean there. Unless you can absolutely guarantee that
>you didn't read too much, or can absolutely guarantee that your
>buffering function will be the ONLY way anything reads from the
>socket, buffering is a problem.

I'm using buffered io streams, so that layer will be reading in chunks. Pulling 
things from that buffer with is cheap enough for my use.

Cameron Simpson <cs at>

More information about the Python-list mailing list