Helia
    Preparing search index...

    Interface Car

    The Car interface provides operations for importing and exporting Car files from Helia's underlying blockstore.

    interface Car {
        export(
            root:
                | CID<unknown, number, number, Version>
                | CID<unknown, number, number, Version>[],
            writer: Pick<CarWriter, "put" | "close">,
            options?: ExportCarOptions,
        ): Promise<void>;
        import(
            reader: Pick<CarReader, "blocks">,
            options?: AbortOptions & ProgressOptions<PutManyBlocksProgressEvents>,
        ): Promise<void>;
        stream(
            root:
                | CID<unknown, number, number, Version>
                | CID<unknown, number, number, Version>[],
            options?: ExportCarOptions,
        ): AsyncGenerator<Uint8Array<ArrayBufferLike>, void, undefined>;
    }
    Index

    Methods

    • Store all blocks that make up one or more DAGs in a car file.

      Parameters

      Returns Promise<void>

      import fs from 'node:fs'
      import { Readable } from 'node:stream'
      import { car } from '@helia/car'
      import { CarWriter } from '@ipld/car'
      import { createHelia } from 'helia'
      import { CID } from 'multiformats/cid'
      import { pEvent } from 'p-event'

      const helia = await createHelia()
      const cid = CID.parse('QmFoo...')

      const c = car(helia)
      const { writer, out } = CarWriter.create(cid)
      const output = fs.createWriteStream('example.car')
      const stream = Readable.from(out).pipe(output)

      await Promise.all([
      c.export(cid, writer),
      pEvent(stream, 'close')
      ])

      Use stream instead. In a future release stream will be renamed export.

    • Returns an AsyncGenerator that yields CAR file bytes.

      Parameters

      Returns AsyncGenerator<Uint8Array<ArrayBufferLike>, void, undefined>

      import { createHelia } from 'helia'
      import { car } from '@helia/car'
      import { CID } from 'multiformats/cid'

      const helia = await createHelia()
      const cid = CID.parse('QmFoo...')

      const c = car(helia)

      for (const buf of c.stream(cid)) {
      // store or send `buf` somewhere
      }