js-ipfs-http-client-lite icon indicating copy to clipboard operation
js-ipfs-http-client-lite copied to clipboard

Benefits and Drawbacks

Open alanshaw opened this issue 5 years ago • 0 comments

Some notes hanging around on my desktop:

Benefits

  • Tiny bundle size
    • Import just the part you want to use:
    • const add = require('ipfs-http-client-lite/src/add')(); await add(...)
  • Uses window.fetch and node-fetch under the hood
  • Pass a custom fetch implementation
  • Cancelable requests with AbortSignal for all requests
  • Pubsub works in the browser

Drawbacks

  • No custom classes returned from API methods
    • No CIDs
    • No PeerInfos
    • No PeerIds
    • etc.
  • No support for passing CIDs as buffers to API methods
  • Not interface-ipfs-core compatible
    • Although a CoreAdapter exists to allow tests to run
  • No APIs that return Node.js style streams (big bundle size inflate if include readable-stream)
    • Hence, missing:
      • addReadableStream
      • catReadableStream
    • That said, APIs can consume Node.js streams because they are async iterable

Eventually:

ipfs-http-client could just export new CoreAdapter(ipfsLiteClient)

alanshaw avatar Jul 29 '19 15:07 alanshaw