@ipld/car
Version:
Content Addressable aRchive format reader and writer
49 lines • 1.4 kB
TypeScript
import type { Block, BlockIndex } from './api.js';
import type { CID } from 'multiformats/cid';
export interface CarEncoder {
setRoots(roots: CID[]): Promise<void>;
writeBlock(block: Block): Promise<void>;
close(): Promise<void>;
version(): number;
}
export interface IteratorChannel_Writer<T> {
write(chunk: T): Promise<void>;
end(): Promise<void>;
}
export interface IteratorChannel<T> {
writer: IteratorChannel_Writer<T>;
iterator: AsyncIterator<T>;
}
export interface CarHeader {
version: 1;
roots: CID[];
}
export interface CarV2FixedHeader {
characteristics: [bigint, bigint];
dataOffset: number;
dataSize: number;
indexOffset: number;
}
export interface CarV2Header extends CarV2FixedHeader {
version: 2;
roots: CID[];
}
export interface CarDecoder {
header(): Promise<CarHeader | CarV2Header>;
blocks(): AsyncGenerator<Block>;
blocksIndex(): AsyncGenerator<BlockIndex>;
}
export interface Seekable {
seek(length: number): void;
}
export interface BytesReader extends Seekable {
upTo(length: number): Promise<Uint8Array>;
exactly(length: number, seek?: boolean): Promise<Uint8Array>;
pos: number;
}
export interface BytesBufferReader extends Seekable {
upTo(length: number): Uint8Array;
exactly(length: number, seek?: boolean): Uint8Array;
pos: number;
}
//# sourceMappingURL=coding.d.ts.map