# API resources for js-ipfs
# Working with IPFS in JS
js-ipfs(opens new window) is a full implementation of IPFS, similar to
go-ipfs(opens new window). You can use it either as a command-line application or as a library to start an IPFS node directly in your program.
js-ipfs-http-client(opens new window) is a smaller library that controls an IPFS node that is already running via its HTTP API.
js-ipfsactually uses this library internally if it detects that another node is already running on your computer. You can also interact with the HTTP API directly using
fetch()in a browser or a module like
requestin Node.js, but using this library can be much more convenient.
Both libraries have the same interface for using all the major IPFS commands (opens new window).
Whenever reasonable, we recommend the second method (interacting with a separate IPFS node via the HTTP API). Keeping the IPFS node in a separate process (even if it’s one your program spawns) isolates you from any stability problems with the node. If a user already has IPFS installed, this also means you can take advantage of a single, common installation on their computer. It’s also less code to load in a browser. If you need to spawn a separate IPFS process, you might want to take a look at
js-ipfsd-ctl (opens new window), which uses the same interface to spawn a
go-ipfs node, a
js-ipfs node, or an in-process
# IPFS in browsers
js-ipfs-http-client libraries work in browsers, but each has some special considerations noted in their READMEs.
You may also be interested in the IPFS browser extension, IPFS Companion (opens new window). If a visitor to your site has it installed, it will make a global
js-ipfs-api, but comes with much better security controls and lets you use IPFS without loading any special libraries.
# JS core API reference
See the JS core API reference (opens new window) here.
# JS HTTP client library