HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
ipfs
js-ipfs
JavaScript2015–2025
ipfs / js-ipfs · Archived

js-ipfs

IPFS implementation in JavaScript

23Distinct people
39Mentions
0Explicit recommenders
7.4KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

IPFS implementation in JavaScript

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 1:49:46 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year39 dated mentions

Observed mentions: 2015-12-09 23:16:10 UTC to 2025-08-16 21:17:15 UTC.

0510152015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20152016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 7 mentions; 0 submissions, 7 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 17 mentions; 0 submissions, 17 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC101
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC707
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC404
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC17017
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC303
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC000
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC000
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC202
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC404
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC000
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC101

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
⛔️ DEPRECATED: js-IPFS has been superseded by Helia 📚 Learn more about this deprecation or how to migrate ⚠️ If you continue using this repo, please note that security fixes will not be provided The JavaScript implementation of the IPFS protocol Getting started Read the docs Ensure CORS is correctly configured for use with the HTTP client Look into the examples to learn how to spawn an IPFS node in Node.js and in the Browser Consult the Core API docs to see what you can do with an IPFS node Head over to https://proto.school to take the IPFS course that covers core IPFS concepts and JS APIs Check out https://docs.ipfs.io for glossary, tips, how-tos and more Need help? Please ask 'How do I?' questions on https://discuss.ipfs.io Find out about chat channels, the IPFS newsletter, the IPFS blog, and more in the IPFS community space. Table of Contents Getting started Install as a CLI user Install as an application developer Documentation Structure Packages Want to hack on IPFS? License Getting Started Install as a CLI user Installing ipfs globally will give you the jsipfs command which you can use to start a daemon running: $ npm install -g ipfs $ jsipfs daemon Initializing IPFS daemon... js-ipfs version: x.x.x System version: x64/darwin Node.js version: x.x.x Swarm listening on /ip4/127.0 .... more output You can then add a file: $ jsipfs add ./hello-world.txt added QmXXY5ZxbtuYj6DnfApLiGstzPN7fvSyigrRee3hDWPCaf hello-world.txt Install as an application developer If you do not need to run a command line daemon, use the ipfs-core package - it has all the features of ipfs but in a lighter package: $ npm install ipfs-core Then start a node in your app: import * as IPFS from 'ipfs-core' const ipfs = await IPFS.create() const { cid } = await ipfs.add('Hello world') console.info(cid) // QmXXY5ZxbtuYj6DnfApLiGstzPN7fvSyigrRee3hDWPCaf Documentation Concepts Config Core API Examples Development Structure This project is broken into several modules, their purposes are: /packages/interface-ipfs-core Tests to ensure adherence of an implementation to the spec /packages/ipfs An aggregator module that bundles the core implementation, the CLI, HTTP API server and daemon /packages/ipfs-cli A CLI to the core implementation /packages/ipfs-core The core implementation /packages/ipfs-core-types Typescript definitions for the core API /packages/ipfs-core-utils Helpers and utilities common to core and the HTTP RPC API client /packages/ipfs-daemon Run js-IPFS as a background daemon /packages/ipfs-grpc-client A gRPC client for js-IPFS /packages/ipfs-grpc-protocol Shared module between the gRPC client and server /packages/ipfs-grpc-server A gRPC-over-websockets server for js-IPFS /packages/ipfs-http-client A client for the RPC-over-HTTP API presented by both js-ipfs and go-ipfs /packages/ipfs-http-server JS implementation of the Kubo RPC HTTP API /packages/ipfs-http-gateway JS implementation of the IPFS HTTP Gateway /packages/ipfs-http-response Creates a HTTP response for a given IPFS Path /packages/ipfs-message-port-client A client for the RPC-over-message-port API presented by js-ipfs running in a shared worker /packages/ipfs-message-port-protocol Code shared by the message port client & server /packages/ipfs-message-port-server The server that receives requests from ipfs-message-port-client Packages List of the main packages that make up the IPFS ecosystem. Package Version Deps CI/Travis Coverage Lead Maintainer Files ipfs-unixfs Alex Potsides Repo ipfs-repo Alex Potsides ipfs-repo-migrations N/A Exchange ipfs-bitswap Dirk McCormick IPNS ipns Vasco Santos Generics/Utils ipfs-utils Hugo Dias ipfs-http-client Alex Potsides ipfs-http-response Vasco Santos ipfsd-ctl Hugo Dias is-ipfs Marcin Rataj aegir Hugo Dias libp2p libp2p Jacob Heun peer-id Vasco Santos libp2p-crypto Jacob Heun libp2p-floodsub Vasco Santos libp2p-gossipsub Cayman Nava libp2p-kad-dht Vasco Santos libp2p-mdns Jacob Heun libp2p-bootstrap Vasco Santos @chainsafe/libp2p-noise N/A libp2p-tcp Jacob Heun libp2p-webrtc-star Vasco Santos libp2p-websockets Jacob Heun libp2p-mplex Vasco Santos libp2p-delegated-content-routing Jacob Heun libp2p-delegated-peer-routing Jacob Heun IPLD @ipld/dag-pb N/A @ipld/dag-cbor N/A Multiformats multiformats N/A mafmt Vasco Santos multiaddr Jacob Heun This table is generated using the module package-table with package-table --data=package-list.json. Want to hack on IPFS? The IPFS implementation in JavaScript needs your help! There are a few things you can do right now to help out: Read the Code of Conduct and JavaScript Contributing Guidelines. Check out existing issues The issue list has many that are marked as 'help wanted' or 'difficulty:easy' which make great starting points for development, many of which can be tackled with no prior IPFS knowledge Look at the IPFS Roadmap This are the high priority items being worked on right now Perform code reviews More eyes will help a. speed the project along b. ensure quality, and c. reduce possible future bugs. Add tests. There can never be enough tests. License
Read the full README on GitHub

What Hacker News says

39 sources
> clearly not true because it never happened to me personally https://en.wikipedia.org/wiki/False_equivalence Here's one of several emails they've sent me over the years, each one happening right after running "ipfs daemon": https://0x0.st/Kryd.png There's lots of other easily-searchable accounts of people having the exact same experience: https://github.com/ipfs/kubo/issues/4343 https://discuss.ipfs.tech/t/moved-ipfs-node-result-netscan-d... https://github.com/ipfs/js-ipfs/issues/3982 https://github.com/filecoin-project/lassie/issues/121 https://github.com/covalenthq/refiner/issues/140
In OpenFreeMap survived 100k requests per second
I've been thinking about this for a localstorage based app that I'm tinkering around with. You can do webrtc without a STUN server, but it requires exchanging a chunk of ugly metadata with another person. I've been wondering whether IPFS might be a good answer to that - there is this, which supposedly works in the browser. https://github.com/ipfs/js-ipfs Dump webrtc metadata onto ipfs, give the user the hash back as a "document key" (and maybe a password that was used to encrypt the webrtc metadata) to share with other people; they paste in the key, enter password, and tada, you have a multi user application backed by localstorage. Of course this wouldn't survive a user changing IP (and perhaps other network attributes) but that might be an OK feature.
In Don't rely on LocalStorage
As the SQLite file is being downloaded vie IPFS it wouldn’t be a HTTP Range request. Does IPFS have the equivalent? (My guess would be yes as I believe it breaks up the file for distribution, but have no idea if it’s exposed in the IPFS.js api) EDIT: After a quick scan of the docs, I think you can do this (but I certainly don't know enough). With at least the "The Mutable Files API" which "is a virtual file system on top of IPFS that exposes a Unix like API", you can provide an `offset` and `length` to `ipfs.files.read(path, [options])`. I don't know if that then translates to only downloading that part of the file from IPFS or not. https://github.com/ipfs/js-ipfs/blob/master/docs/core-api/FI... EDIT2: In fact the `ipfs.cat` api that the OP is using takes `offset` and `length` parameters too. https://github.com/ipfs/js-ipfs/blob/master/do
Read the rest
In Database-less torrent website
Hosting: I'm fairly sure many streaming solutions (HLS, MPEG-DASH?) work by having the client request chunks of content pre-rendered at specific bit rates. Ergo the actual chunks are static content. IPFS does static content and Cloudflare does a free IPFS gateway. https://blog.cloudflare.com/distributed-web-gateway/ https://github.com/ipfs/js-ipfs/blob/master/examples/browser... Recoding seems like a candidate for distributed computing, and a way for fans to support creators.
In “A company is copyright-claiming every video I have ever made”
I have written a quick proof-of-concept decentralised image host(ing solution) using IPFS' in-browser implementation[0]. It is, as you might guess, not as friction-free as one would expect from other traditional services (e.g. Imgur) but I found it surprisingly easy to develop and to use it. Check the repo I've linked and give deima a try yourself! https://boramalper.github.io/deima/image/#QmW8j8Dhhh3mhedGi2... It's getting quite late here (2:43 AM) but I would happily respond to your questions & comments in the morning. [0]: https://github.com/ipfs/js-ipfs
In Show HN: Deima – Decentralised Image Hosting Using IPFS
> On a semi-related note, I don't know if torrents are successful outside of piracy. Regardless of the cause, they've been successful don't they? :) I think partially it was because you had to download a separate piece of software -a BitTorrent client- to utilise the network. This is also changing thanks to WebTorrent[0] and IPFS.js[1] which works right in our web browsers without even requiring an add-on! They enable initiatives such as PeerTube[2] -a decentralised video-hosting platform- and distributed (NoSQL) databases such as OrbitDB[3]. Convenience is the key and huge advancements have been made in that direction! [0]: https://github.com/webtorrent/webtorrent [1]: https://github.com/ipfs/js-ipfs [2]: https://joinpeertube.org/en/ [3]: https://github.com/orbitdb/orbit-db
In “In 2018 the blockchain/decentralization story fell apart”
So, the article is coming slowly or not coming at all because two of the four bootstrappers are timing out and, if you're unlucky enough to hit one of them, it might take minutes to replicate the article content. Bug has been reported to the js-ipfs guys and a pull request has been merged: https://github.com/ipfs/js-ipfs/pull/1693 That was instructive and I'm glad the experience has resulted in people getting interested, questions being asked and bugs being fixed. Sorry if it didn't work perfectly, distributed stuff is hard. I don't understand the flagging but hey, HN will be HN, I guess :) I will fix the issue in the next days and will keep on developing Vitriol. Obviously any help is appreciated. Thanks to everyone for your comments!
In Show HN: Vitriol – a distributed, serverless web publishing platform
About the intro article not coming up Sometimes the bootstrapping server seem to be overwhelmed. I suspect HN's "hug of death" could be possibly responsible. This will be resolved when js-ipfs implements DHT and relay: > Please read this: DHT (automatic content discovery) and Circuit Relay (pierce through NATs and dial between any node in the network) are two fundamental pieces that are not finalized yet. There are multiple applications that can be built without these two services but nevertheless they are fundamental to get that magic IPFS experience. If you want to track progress or contribute, please follow: DHT: https://github.com/ipfs/js-ipfs/pull/856 Relay: https://github.com/ipfs/js-ipfs/pull/1063 This stuff is alpha at this point, and sometimes there are still fires to extinguish. Sorry about the inconvenience, I suggest to try
Read the rest
again later :(
In Show HN: Vitriol – a distributed, serverless web publishing platform
> In regards to using a DHT, that's something I have not researched. I am not sure how long an offer is valid, were you thinking of being able to update them as needed whenever you want to establish a connection? Yes. I have toyed with js-libp2p to obtain "providers" based on a key, but I believe the part of js-libp2p that allows you to participate in the DHT isn't quite done [0]. I imagine you'd make a CID that would be a simple hash of some shared string. Then you'd tell the network you are a "provider" with that CID, and when requested, you give the offer (AES'd w/ shared string or other shared secret?). The client can just connect to the same DHT and give the hash and get the (encrypted?) offer. Not sure if IPFS has a way for me to prevent other people from serving/replicating the CID I am serving instead of forcing it to be a hash of
Read the rest
the content. A similar approach can happen on BT mainline w/ an infohash maybe. 0 - https://github.com/ipfs/js-ipfs/pull/856
In Show HN: WebRTC signalling data using QR codes
I built this mainly because I was feeling the pain while implementing a website for a customer that is allowing their users to upload and stream files in the browser. As the file upload should accept any kind of input, but the streaming only allows for certain files to be played back in the browser I researched different codecs that are available on the web for streaming and came across: https://github.com/ipfs/js-ipfs/tree/master/examples/browser... I though, why not make this a SaaS.
In Show HN: A website that converts any IPFS file to HLS and reups it to IPFS

Showing the 15 most recent of 39 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.