1 | > # ⛔️ DEPRECATED: [js-IPFS](https://github.com/ipfs/js-ipfs) has been superseded by [Helia](https://github.com/ipfs/helia)
|
2 | >
|
3 | > 📚 [Learn more about this deprecation](https://github.com/ipfs/js-ipfs/issues/4336) or [how to migrate](https://github.com/ipfs/helia/wiki/Migrating-from-js-IPFS)
|
4 | >
|
5 | > ⚠️ If you continue using this repo, please note that security fixes will not be provided
|
6 |
|
7 | # ipfs <!-- omit in toc -->
|
8 |
|
9 | [![ipfs.tech](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](https://ipfs.tech)
|
10 | [![Discuss](https://img.shields.io/discourse/https/discuss.ipfs.tech/posts.svg?style=flat-square)](https://discuss.ipfs.tech)
|
11 | [![codecov](https://img.shields.io/codecov/c/github/ipfs/js-ipfs.svg?style=flat-square)](https://codecov.io/gh/ipfs/js-ipfs)
|
12 | [![CI](https://img.shields.io/github/actions/workflow/status/ipfs/js-ipfs/test.yml?branch=master\&style=flat-square)](https://github.com/ipfs/js-ipfs/actions/workflows/test.yml?query=branch%3Amaster)
|
13 |
|
14 | > JavaScript implementation of the IPFS specification
|
15 |
|
16 | ## Table of contents <!-- omit in toc -->
|
17 |
|
18 | - [Install](#install)
|
19 | - [Getting Started](#getting-started)
|
20 | - [Next Steps](#next-steps)
|
21 | - [Want to hack on IPFS?](#want-to-hack-on-ipfs)
|
22 | - [License](#license)
|
23 | - [Contribute](#contribute)
|
24 |
|
25 | ## Install
|
26 |
|
27 | ```console
|
28 | $ npm i ipfs
|
29 | ```
|
30 |
|
31 | <p align="center">
|
32 | <a href="https://js.ipfs.io" title="JS IPFS">
|
33 | <img src="https://ipfs.io/ipfs/Qme6KJdKcp85TYbLxuLV7oQzMiLremD7HMoXLZEmgo6Rnh/js-ipfs-sticker.png" alt="IPFS in JavaScript logo" width="244" />
|
34 | </a>
|
35 | </p>
|
36 |
|
37 | <h3 align="center">An <a href="https://docs.ipfs.io/basics/ipfs-implementations/">IPFS protocol implementation</a> written in JS</h3>
|
38 |
|
39 | <p align="center">
|
40 | <a href="https://github.com/ipfs/js-ipfs/tree/master/packages/interface-ipfs-core"><img src="https://img.shields.io/badge/interface--ipfs--core-API%20Docs-blue.svg"></a>
|
41 | <a href="https://travis-ci.com/ipfs/js-ipfs?branch=master"><img src="https://badgen.net/travis/ipfs/js-ipfs?branch=master" /></a>
|
42 | <a href="https://codecov.io/gh/ipfs/js-ipfs"><img src="https://badgen.net/codecov/c/github/ipfs/js-ipfs" /></a>
|
43 | <a href="https://bundlephobia.com/result?p=ipfs"><img src="https://badgen.net/bundlephobia/minzip/ipfs"></a>
|
44 | <a href="https://david-dm.org/ipfs/js-ipfs?path=packages/ipfs"><img src="https://david-dm.org/ipfs/js-ipfs.svg?style=flat&path=packages/ipfs" /></a>
|
45 | <a href="https://github.com/feross/standard"><img src="https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat"></a>
|
46 | <a href=""><img src="https://img.shields.io/badge/npm-%3E%3D6.0.0-orange.svg?style=flat" /></a>
|
47 | <a href=""><img src="https://img.shields.io/badge/Node.js-%3E%3D10.0.0-orange.svg?style=flat" /></a>
|
48 | <a href="https://www.npmjs.com/package/ipfs"><img src="https://img.shields.io/npm/dm/ipfs.svg" /></a>
|
49 | <a href="https://www.jsdelivr.com/package/npm/ipfs"><img src="https://data.jsdelivr.com/v1/package/npm/ipfs/badge"/></a>
|
50 | <br>
|
51 | </p>
|
52 |
|
53 | `ipfs` is the core API, a CLI and a HTTP server that functions as a HTTP to IPFS bridge and an RPC endpoint.
|
54 |
|
55 | If you want to integrate IPFS into your application without including a CLI or HTTP server, see the [ipfs-core](https://github.com/ipfs/js-ipfs/tree/master/packages/ipfs-core) module.
|
56 |
|
57 | ## Getting Started
|
58 |
|
59 | Installing `ipfs` globally will give you the `jsipfs` command which you can use to start a daemon running:
|
60 |
|
61 | ```console
|
62 | $ npm install -g ipfs
|
63 | $ jsipfs daemon
|
64 | Initializing IPFS daemon...
|
65 | js-ipfs version: x.x.x
|
66 | System version: x64/darwin
|
67 | Node.js version: x.x.x
|
68 | Swarm listening on /ip4/127.0
|
69 | .... more output
|
70 | ```
|
71 |
|
72 | You can then add a file:
|
73 |
|
74 | ```console
|
75 | $ jsipfs add ./hello-world.txt
|
76 | added QmXXY5ZxbtuYj6DnfApLiGstzPN7fvSyigrRee3hDWPCaf hello-world.txt
|
77 | ```
|
78 |
|
79 | ### Next Steps
|
80 |
|
81 | - Read the [docs](https://github.com/ipfs/js-ipfs/tree/master/docs)
|
82 | - Look into the [examples](https://github.com/ipfs-examples/js-ipfs-examples) to learn how to spawn an IPFS node in Node.js and in the Browser
|
83 | - Consult the [Core API docs](https://github.com/ipfs/js-ipfs/tree/master/docs/core-api) to see what you can do with an IPFS node
|
84 | - Head over to <https://proto.school> to take interactive tutorials that cover core IPFS APIs
|
85 | - Check out <https://docs.ipfs.io> for tips, how-tos and more
|
86 | - See <https://blog.ipfs.io> for news and more
|
87 | - Need help? Please ask 'How do I?' questions on <https://discuss.ipfs.io>
|
88 |
|
89 | ## Want to hack on IPFS?
|
90 |
|
91 | [![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/CONTRIBUTING.md)
|
92 |
|
93 | This IPFS implementation in JavaScript needs your help! There are a few things you can do right now to help out:
|
94 |
|
95 | Read the [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md) and [JavaScript Contributing Guidelines](https://github.com/ipfs/community/blob/master/CONTRIBUTING_JS.md).
|
96 |
|
97 | - **Check out existing issues** The [issue list](https://github.com/ipfs/js-ipfs/issues) has many that are marked as ['help wanted'](https://github.com/ipfs/js-ipfs/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%22help+wanted%22) or ['difficulty:easy'](https://github.com/ipfs/js-ipfs/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3Adifficulty%3Aeasy) which make great starting points for development, many of which can be tackled with no prior IPFS knowledge
|
98 | - **Perform code reviews** More eyes will help
|
99 | a. speed the project along
|
100 | b. ensure quality, and
|
101 | c. reduce possible future bugs.
|
102 | - **Add tests**. There can never be enough tests.
|
103 |
|
104 | Find out about chat channels, the IPFS newsletter, the IPFS blog, and more in the [IPFS community space](https://docs.ipfs.io/community/).
|
105 |
|
106 | ## License
|
107 |
|
108 | Licensed under either of
|
109 |
|
110 | - Apache 2.0, ([LICENSE-APACHE](LICENSE-APACHE) / <http://www.apache.org/licenses/LICENSE-2.0>)
|
111 | - MIT ([LICENSE-MIT](LICENSE-MIT) / <http://opensource.org/licenses/MIT>)
|
112 |
|
113 | ## Contribute
|
114 |
|
115 | Contributions welcome! Please check out [the issues](https://github.com/ipfs/js-ipfs/issues).
|
116 |
|
117 | Also see our [contributing document](https://github.com/ipfs/community/blob/master/CONTRIBUTING_JS.md) for more information on how we work, and about contributing in general.
|
118 |
|
119 | Please be aware that all interactions related to this repo are subject to the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md).
|
120 |
|
121 | Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
|
122 |
|
123 | [![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/CONTRIBUTING.md)
|