RibltEncoder
Defined in: packages/distillate/src/riblt/encoder.ts:33
The sending side of rateless set reconciliation: turns a key set into an endless stream of coded symbols, a prefix of which lets a peer holding a similar set decode exactly the keys that differ.
Example
Section titled “Example”const encoder = RibltEncoder.from(["alice", "bob"]);Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new RibltEncoder(
params?):RibltEncoder
Defined in: packages/distillate/src/riblt/encoder.ts:50
Parameters
Section titled “Parameters”params?
Section titled “params?”RibltParams = {}
Returns
Section titled “Returns”RibltEncoder
Throws
Section titled “Throws”ParamError If seed is not a uint32.
Methods
Section titled “Methods”add(
key):void
Defined in: packages/distillate/src/riblt/encoder.ts:76
Adds a key. Keys must be distinct, and all added before the first coded symbol is produced.
Parameters
Section titled “Parameters”BytesLike
Returns
Section titled “Returns”void
Throws
Section titled “Throws”ParamError If a coded symbol was already produced.
stream()
Section titled “stream()”stream(
n):Generator<Uint8Array<ArrayBufferLike>,never,undefined>
Defined in: packages/distillate/src/riblt/encoder.ts:111
Yields consecutive RibltEncoder.take frames of n symbols
forever; the caller stops once the peer reports it has decoded.
Parameters
Section titled “Parameters”number
Returns
Section titled “Returns”Generator<Uint8Array<ArrayBufferLike>, never, undefined>
Throws
Section titled “Throws”ParamError On the first next(), if n is not a positive
integer or the keys are not distinct, as RibltEncoder.take does.
take()
Section titled “take()”take(
n):Uint8Array
Defined in: packages/distillate/src/riblt/encoder.ts:96
Produces the next n coded symbols as one frame, for the peer’s
RibltDecoder.push. Frames must reach the decoder in order.
Parameters
Section titled “Parameters”number
Returns
Section titled “Returns”Uint8Array
Throws
Section titled “Throws”ParamError If n is not a positive integer. On the first
frame, if two keys hash alike under the seed: a repeated key, or a 64-bit
collision that another seed resolves.
from()
Section titled “from()”
staticfrom(keys,params?):RibltEncoder
Defined in: packages/distillate/src/riblt/encoder.ts:62
Builds an encoder over keys, which must be distinct:
RibltEncoder.take refuses the first frame otherwise.
Parameters
Section titled “Parameters”Iterable<BytesLike>
params?
Section titled “params?”Returns
Section titled “Returns”RibltEncoder
Throws
Section titled “Throws”ParamError If seed is not a uint32.