{"_id":"@douganderson444/ipfs-core","_rev":"1-f84a5a823abe05dbf528173311e9f268","name":"@douganderson444/ipfs-core","dist-tags":{"latest":"0.17.1"},"versions":{"0.17.0":{"name":"@douganderson444/ipfs-core","version":"0.17.0","description":"JavaScript implementation of the IPFS specification","license":"Apache-2.0 OR MIT","homepage":"https://github.com/ipfs/js-ipfs/tree/master/packages/ipfs-core#readme","repository":{"type":"git","url":"git+https://github.com/ipfs/js-ipfs.git"},"bugs":{"url":"https://github.com/ipfs/js-ipfs/issues"},"keywords":["IPFS"],"engines":{"node":">=16.0.0","npm":">=7.0.0"},"type":"module","types":"./dist/src/index.d.ts","typesVersions":{"*":{"*":["*","dist/*","dist/src/*","dist/src/*/index"],"src/*":["*","dist/*","dist/src/*","dist/src/*/index"]}},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./src/index.js"},"./config/profiles":{"types":"./src/components/config/profiles.d.ts","import":"./src/components/config/profiles.js"},"./block":{"import":"./src/components/block/index.js"},"./dag":{"import":"./src/components/dag/index.js"},"./pin":{"import":"./src/components/pin/index.js"},"./repo":{"import":"./src/components/repo/index.js"},"./storage":{"import":"./src/components/storage.js"}},"eslintConfig":{"extends":"ipfs","parserOptions":{"sourceType":"module"}},"scripts":{"build":"aegir build","prepublishOnly":"node scripts/update-version.js","lint":"aegir lint","test":"aegir test","test:node":"aegir test -t node --cov","test:chrome":"aegir test -t browser --cov","test:chrome-webworker":"aegir test -t webworker","test:firefox":"aegir test -t browser -- --browser firefox","test:firefox-webworker":"aegir test -t webworker -- --browser firefox","test:electron-main":"aegir test -t electron-main","test:bootstrapers":"IPFS_TEST=bootstrapers aegir test -t browser -f test/bootstrappers.js","clean":"aegir clean","dep-check":"aegir dep-check -i interface-ipfs-core -i ipfs-core-types --i interface-blockstore -i @libp2p/interface-dht -i @libp2p/interface-keys -i @libp2p/interface-transport -i @libp2p/interfaces"},"dependencies":{"@chainsafe/libp2p-noise":"^10.0.0","@ipld/car":"^5.0.0","@ipld/dag-cbor":"^8.0.0","@ipld/dag-json":"^9.0.0","@ipld/dag-pb":"^3.0.0","@libp2p/bootstrap":"^5.0.0","@libp2p/crypto":"^1.0.0","@libp2p/delegated-content-routing":"^3.0.0","@libp2p/delegated-peer-routing":"^3.0.0","@libp2p/interface-dht":"^1.0.2","@libp2p/interface-keys":"^1.0.3","@libp2p/interface-peer-id":"^1.0.5","@libp2p/interface-transport":"^2.0.0","@libp2p/interfaces":"^3.0.3","@libp2p/kad-dht":"^5.0.1","@libp2p/logger":"^2.0.2","@libp2p/mplex":"^7.0.0","@libp2p/peer-id":"^1.1.16","@libp2p/peer-id-factory":"^1.0.19","@libp2p/record":"^2.0.3","@libp2p/websockets":"^5.0.0","@multiformats/mafmt":"^11.0.2","@multiformats/multiaddr":"^11.0.0","@multiformats/multiaddr-to-uri":"^9.0.1","@multiformats/murmur3":"^2.0.0","any-signal":"^3.0.0","array-shuffle":"^3.0.0","blockstore-core":"^2.0.1","dag-jose":"^3.0.1","datastore-core":"^8.0.1","datastore-pubsub":"^6.0.0","dlv":"^1.1.3","err-code":"^3.0.1","hamt-sharding":"^3.0.0","hashlru":"^2.3.0","interface-blockstore":"^3.0.0","interface-datastore":"^7.0.0","ipfs-bitswap":"^13.0.0","ipfs-core-config":"^0.6.0","ipfs-core-types":"^0.13.0","ipfs-core-utils":"^0.17.0","ipfs-http-client":"^59.0.0","ipfs-repo":"^16.0.0","ipfs-unixfs":"^8.0.0","ipfs-unixfs-exporter":"^9.0.0","ipfs-unixfs-importer":"^11.0.0","ipfs-utils":"^9.0.6","ipns":"^4.0.0","is-domain-name":"^1.0.1","is-ipfs":"^7.0.0","it-drain":"^2.0.0","it-filter":"^2.0.0","it-first":"^2.0.0","it-last":"^2.0.0","it-map":"^2.0.0","it-merge":"^2.0.0","it-parallel":"^3.0.0","it-peekable":"^2.0.0","it-pipe":"^2.0.3","it-pushable":"^3.0.0","it-tar":"^6.0.0","it-to-buffer":"^3.0.0","just-safe-set":"^4.0.2","libp2p":"^0.40.0","merge-options":"^3.0.4","mortice":"^3.0.0","multiformats":"^10.0.0","pako":"^2.0.4","parse-duration":"^1.0.0","timeout-abort-controller":"^3.0.0","uint8arrays":"^4.0.2"},"devDependencies":{"@chainsafe/libp2p-gossipsub":"^4.0.0","@types/dlv":"^1.1.2","@types/pako":"^2.0.0","@types/rimraf":"^3.0.1","aegir":"^37.0.11","blockstore-datastore-adapter":"^4.0.0","delay":"^5.0.0","go-ipfs":"^0.12.0","interface-blockstore-tests":"^3.0.0","interface-ipfs-core":"^0.157.0","ipfsd-ctl":"^12.0.3","iso-url":"^1.0.0","it-all":"^2.0.0","nanoid":"^4.0.0","p-defer":"^4.0.0","rimraf":"^3.0.2","sinon":"^14.0.0"},"gitHead":"c292aa0763f3a0a0ae0dbe4746c70d39cdc0672c","_id":"@douganderson444/ipfs-core@0.17.0","_nodeVersion":"18.5.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-ZMeVH5z4vty9QH4OPwl1uVPihdf8Km4viE7B1aP+8UnczwnGcYGs3gp68v0yyOfNS7cLTsrt4KY5YysW8O09sA==","shasum":"a7fa4979537e89f8d4e0dcca66c6c75c3ecb81f8","tarball":"https://registry.npmjs.org/@douganderson444/ipfs-core/-/ipfs-core-0.17.0.tgz","fileCount":145,"unpackedSize":351786,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIALyQGmMV2Pcxmrr871BVKhK1U07Ls5N72vGlvCYtoEBAiBmgn+9cgDnZYqW0fvbcOMa7Qqw3RCyD97yg3MNsQn0Wg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjdWihACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpFMRAAmMynyrd25CZVnNkZU9ObuE+PGcJvvN7Mv6/K2G1/IKElDHYt\r\nt3zyYcJndFI1AVpLptv/FY2P19IFshc+w6+kB8on7quV3SZ4lPqXB0SlZAGA\r\ndvOsDA72/pWSzVvdoppHEHpSDhuVIP2/ZryVnRRmg/jkojBm6Ea+gVmd02/g\r\nF3s7ySZBqDl1d3CFH8sKW0VI7nhKtq7dJq+czN2z0clre1/Sq7Rn7IdRR7HP\r\nKMqeqg4BHu1FoqtQH/w/5BHFOLQnRbWl034TqGFjSTOo87I+rgkOISUydLVp\r\nlVT5eWM7D1bj3CBoYQzPyOmUeRGfFx99RfvKYcSj8qm2FsUvri4eRzWH7qnS\r\nuojSyUUYg4rTnMvJNFmVdFWKEi5whY/xTnozxOIftH6nn9yvH2Cfeys35oLl\r\nmLVmHEvLfzWoVJB55CS9n+OHOGBv/pB+ITT49oGkKP028qNrNXKDn2YSvQyg\r\n7SO51cEt0Sl94tQRuVdWySPdefiYxAoMg4Hxe7Jp2cy0oLLZMZncFjGFgUuF\r\n9vdWfI/QfaiPsKD6ZpijpKSvYvHpW5Pl0vJScd0wzkU6cWXq5DoZqaEyzt5b\r\nbQ18cAy9jYB9TwrFcc5UH0qeIg+iN9TIQifzzMlTdDdnEQCsysHm8nlQxQEK\r\nnKRX8UuTjcX+pEy59yRD3dwzHWWg2XJjv0I=\r\n=Ys3f\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"douganderson444","email":"douganderson444@gmail.com"},"directories":{},"maintainers":[{"name":"douganderson444","email":"douganderson444@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ipfs-core_0.17.0_1668638880786_0.46880111305286887"},"_hasShrinkwrap":false},"0.17.1":{"name":"@douganderson444/ipfs-core","version":"0.17.1","description":"JavaScript implementation of the IPFS specification","license":"Apache-2.0 OR MIT","homepage":"https://github.com/ipfs/js-ipfs/tree/master/packages/ipfs-core#readme","repository":{"type":"git","url":"git+https://github.com/ipfs/js-ipfs.git"},"bugs":{"url":"https://github.com/ipfs/js-ipfs/issues"},"keywords":["IPFS"],"engines":{"node":">=16.0.0","npm":">=7.0.0"},"type":"module","types":"./dist/src/index.d.ts","typesVersions":{"*":{"*":["*","dist/*","dist/src/*","dist/src/*/index"],"src/*":["*","dist/*","dist/src/*","dist/src/*/index"]}},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./src/index.js"},"./config/profiles":{"types":"./src/components/config/profiles.d.ts","import":"./src/components/config/profiles.js"},"./block":{"import":"./src/components/block/index.js"},"./dag":{"import":"./src/components/dag/index.js"},"./pin":{"import":"./src/components/pin/index.js"},"./repo":{"import":"./src/components/repo/index.js"},"./storage":{"import":"./src/components/storage.js"},"./preload":{"import":"./src/preload.js"}},"eslintConfig":{"extends":"ipfs","parserOptions":{"sourceType":"module"}},"scripts":{"build":"aegir build","prepublishOnly":"node scripts/update-version.js","lint":"aegir lint","test":"aegir test","test:node":"aegir test -t node --cov","test:chrome":"aegir test -t browser --cov","test:chrome-webworker":"aegir test -t webworker","test:firefox":"aegir test -t browser -- --browser firefox","test:firefox-webworker":"aegir test -t webworker -- --browser firefox","test:electron-main":"aegir test -t electron-main","test:bootstrapers":"IPFS_TEST=bootstrapers aegir test -t browser -f test/bootstrappers.js","clean":"aegir clean","dep-check":"aegir dep-check -i interface-ipfs-core -i ipfs-core-types --i interface-blockstore -i @libp2p/interface-dht -i @libp2p/interface-keys -i @libp2p/interface-transport -i @libp2p/interfaces"},"dependencies":{"@chainsafe/libp2p-noise":"^10.0.0","@ipld/car":"^5.0.0","@ipld/dag-cbor":"^8.0.0","@ipld/dag-json":"^9.0.0","@ipld/dag-pb":"^3.0.0","@libp2p/bootstrap":"^5.0.0","@libp2p/crypto":"^1.0.0","@libp2p/delegated-content-routing":"^3.0.0","@libp2p/delegated-peer-routing":"^3.0.0","@libp2p/interface-dht":"^1.0.2","@libp2p/interface-keys":"^1.0.3","@libp2p/interface-peer-id":"^1.0.5","@libp2p/interface-transport":"^2.0.0","@libp2p/interfaces":"^3.0.3","@libp2p/kad-dht":"^5.0.1","@libp2p/logger":"^2.0.2","@libp2p/mplex":"^7.0.0","@libp2p/peer-id":"^1.1.16","@libp2p/peer-id-factory":"^1.0.19","@libp2p/record":"^2.0.3","@libp2p/websockets":"^5.0.0","@multiformats/mafmt":"^11.0.2","@multiformats/multiaddr":"^11.0.0","@multiformats/multiaddr-to-uri":"^9.0.1","@multiformats/murmur3":"^2.0.0","any-signal":"^3.0.0","array-shuffle":"^3.0.0","blockstore-core":"^2.0.1","dag-jose":"^3.0.1","datastore-core":"^8.0.1","datastore-pubsub":"^6.0.0","dlv":"^1.1.3","err-code":"^3.0.1","hamt-sharding":"^3.0.0","hashlru":"^2.3.0","interface-blockstore":"^3.0.0","interface-datastore":"^7.0.0","ipfs-bitswap":"^13.0.0","ipfs-core-config":"^0.6.0","ipfs-core-types":"^0.13.0","ipfs-core-utils":"^0.17.0","ipfs-http-client":"^59.0.0","ipfs-repo":"^16.0.0","ipfs-unixfs":"^8.0.0","ipfs-unixfs-exporter":"^9.0.0","ipfs-unixfs-importer":"^11.0.0","ipfs-utils":"^9.0.6","ipns":"^4.0.0","is-domain-name":"^1.0.1","is-ipfs":"^7.0.0","it-drain":"^2.0.0","it-filter":"^2.0.0","it-first":"^2.0.0","it-last":"^2.0.0","it-map":"^2.0.0","it-merge":"^2.0.0","it-parallel":"^3.0.0","it-peekable":"^2.0.0","it-pipe":"^2.0.3","it-pushable":"^3.0.0","it-tar":"^6.0.0","it-to-buffer":"^3.0.0","just-safe-set":"^4.0.2","libp2p":"^0.40.0","merge-options":"^3.0.4","mortice":"^3.0.0","multiformats":"^10.0.0","pako":"^2.0.4","parse-duration":"^1.0.0","timeout-abort-controller":"^3.0.0","uint8arrays":"^4.0.2"},"devDependencies":{"@chainsafe/libp2p-gossipsub":"^4.0.0","@types/dlv":"^1.1.2","@types/pako":"^2.0.0","@types/rimraf":"^3.0.1","aegir":"^37.0.11","blockstore-datastore-adapter":"^4.0.0","delay":"^5.0.0","go-ipfs":"^0.12.0","interface-blockstore-tests":"^3.0.0","interface-ipfs-core":"^0.157.0","ipfsd-ctl":"^12.0.3","iso-url":"^1.0.0","it-all":"^2.0.0","nanoid":"^4.0.0","p-defer":"^4.0.0","rimraf":"^3.0.2","sinon":"^14.0.0"},"gitHead":"4a9b11fa696f7167e92c723bc74e2f95661bc3a9","_id":"@douganderson444/ipfs-core@0.17.1","_nodeVersion":"18.5.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-EtLEqM56QafEZ5lQrH1uIsG6wm1vnIUfqoXvsILkt4GX3ltGK6uKPvFwerLuQUDvpCsXwVALst1Hle7A0y0OhQ==","shasum":"d4ebe0f22272b1cdd4de573a7bfca42fd6233dab","tarball":"https://registry.npmjs.org/@douganderson444/ipfs-core/-/ipfs-core-0.17.1.tgz","fileCount":145,"unpackedSize":351850,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCbf1OKsaesj9WYRukWUqlLIMNBQqrUxvPYAFJefdvEOwIgMOnjPoS8M9Eu7/B46DzPI18y6jotCPwu6NmVlhYu03w="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjdWpwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpdEBAAhW7um0/HrDP2fbzPQhBB8nwbm7wmCG2K1XVly5MjauPrLIfi\r\nXCp3/UYkEYpHjIn6zh+AhmmMUFKMFPu4mTU1S7D/osDVamJUEpIoUsriJj/z\r\nUp82/BU4ygAa2eXNxnvYMrtD6QLPK2Nv0tOhLA6VIm2nFuLCreRxctSVs86r\r\n7QT2fPkzsVf84YxBpv8hdve1tbdXYiuTgyw3OT442rTaBgN8hCdqBgFiqxQq\r\nWIGQe3KK0vDMAtrD9EEljjP/UtbYOsiE75aRP9kSMOM1D51lkpfeLjbR6Gkt\r\n6f8WcdktxhCE4O7bP4DbuLOfQm8WGIJpB/hbM2bjcxA+tahABUo6gIW9Q7iH\r\npgYkP5QDRglT9wsxm4PccCnWTe4LGyX0qSJkjHVcB+Pn2N+aNbcito79NauB\r\nRzjgeU6gTZCq/2pZElLvX6p0rpwZymANQMZuB5YgnyRijyeQ14cbK/OMxnJU\r\nIqryXgTNAcfXxeunNgdZAPXyjVUWn2d0/Q1FmD5+Hlg582jDRu3RQIyGAVBA\r\nin5rEL7h0Sv2Sr9wYU+uF/tduqQbRtoFilIfSi3j6MhDowPct/esEeTqVcAi\r\nfs4ZMb5T/AMbOFuxF9t7RDPQ9vpJjTi5UM6Uzi9L2bXUBZPH/mvHOnF8cS9/\r\nAzHk3sIIMXrGZ+5u8sTpwrbgVjk0y6iFZaw=\r\n=n439\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"douganderson444","email":"douganderson444@gmail.com"},"directories":{},"maintainers":[{"name":"douganderson444","email":"douganderson444@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ipfs-core_0.17.1_1668639344090_0.06433229561455311"},"_hasShrinkwrap":false}},"time":{"created":"2022-11-16T22:48:00.727Z","0.17.0":"2022-11-16T22:48:01.053Z","modified":"2022-11-16T22:55:44.323Z","0.17.1":"2022-11-16T22:55:44.234Z"},"maintainers":[{"name":"douganderson444","email":"douganderson444@gmail.com"}],"description":"JavaScript implementation of the IPFS specification","homepage":"https://github.com/ipfs/js-ipfs/tree/master/packages/ipfs-core#readme","keywords":["IPFS"],"repository":{"type":"git","url":"git+https://github.com/ipfs/js-ipfs.git"},"bugs":{"url":"https://github.com/ipfs/js-ipfs/issues"},"license":"Apache-2.0 OR MIT","readme":"# ipfs-core <!-- omit in toc -->\r\n\r\n[![ipfs.io](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io)\r\n[![IRC](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs)\r\n[![Discord](https://img.shields.io/discord/806902334369824788?style=flat-square)](https://discord.gg/ipfs)\r\n[![codecov](https://img.shields.io/codecov/c/github/ipfs/js-ipfs.svg?style=flat-square)](https://codecov.io/gh/ipfs/js-ipfs)\r\n[![CI](https://img.shields.io/github/workflow/status/ipfs/js-ipfs/test%20&%20maybe%20release/master?style=flat-square)](https://github.com/ipfs/js-ipfs/actions/workflows/js-test-and-release.yml)\r\n\r\n> JavaScript implementation of the IPFS specification\r\n\r\n## Table of contents <!-- omit in toc -->\r\n\r\n- - [Install](#install)\r\n- [ipfs-core <!-- omit in toc -->](#ipfs-core----omit-in-toc---)\r\n  - [Getting Started](#getting-started)\r\n  - [Next Steps](#next-steps)\r\n    - [Browser CDN](#browser-cdn)\r\n    - [Browser bundle](#browser-bundle)\r\n  - [Want to hack on IPFS?](#want-to-hack-on-ipfs)\r\n  - [License](#license)\r\n  - [Contribute](#contribute)\r\n\r\n## Install\r\n\r\n```console\r\n$ npm i ipfs-core\r\n```\r\n\r\n<p align=\"center\">\r\n<a href=\"https://js.ipfs.io\" title=\"JS IPFS\">\r\n  <img src=\"https://ipfs.io/ipfs/Qme6KJdKcp85TYbLxuLV7oQzMiLremD7HMoXLZEmgo6Rnh/js-ipfs-sticker.png\" alt=\"IPFS in JavaScript logo\" width=\"244\" />\r\n</a>\r\n</p>\r\n\r\n<h3 align=\"center\">The JavaScript implementation of the IPFS protocol</h3>\r\n\r\n<p align=\"center\">\r\n<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>\r\n<a href=\"https://travis-ci.com/ipfs/js-ipfs?branch=master\"><img src=\"https://badgen.net/travis/ipfs/js-ipfs?branch=master\" /></a>\r\n<a href=\"https://codecov.io/gh/ipfs/js-ipfs\"><img src=\"https://badgen.net/codecov/c/github/ipfs/js-ipfs\" /></a>\r\n<a href=\"https://bundlephobia.com/result?p=ipfs\"><img src=\"https://badgen.net/bundlephobia/minzip/ipfs\"></a>\r\n<a href=\"https://david-dm.org/ipfs/js-ipfs?path=packages/ipfs-core\"><img src=\"https://david-dm.org/ipfs/js-ipfs.svg?style=flat&path=packages/ipfs-core\" /></a>\r\n<a href=\"https://github.com/feross/standard\"><img src=\"https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat\"></a>\r\n<a href=\"\"><img src=\"https://img.shields.io/badge/npm-%3E%3D6.0.0-orange.svg?style=flat\" /></a>\r\n<a href=\"\"><img src=\"https://img.shields.io/badge/Node.js-%3E%3D10.0.0-orange.svg?style=flat\" /></a>\r\n<a href=\"https://www.npmjs.com/package/ipfs\"><img src=\"https://img.shields.io/npm/dm/ipfs.svg\" /></a>\r\n<a href=\"https://www.jsdelivr.com/package/npm/ipfs\"><img src=\"https://data.jsdelivr.com/v1/package/npm/ipfs/badge\"/></a>\r\n<br>\r\n</p>\r\n\r\n# ipfs-core <!-- omit in toc -->\r\n\r\n`ipfs-core` is the implementation of the IPFS Core API written in JavaScript without depending on other languages/implementations. It contains all you need to integrate IPFS into your application.\r\n\r\nIf you want to run IPFS as a standalone daemon process, see the [ipfs](https://github.com/ipfs/js-ipfs/tree/master/packages/ipfs) module.\r\n\r\n## Getting Started\r\n\r\nThe `ipfs-core` package contains all the features of `ipfs` but in a lighter package without the CLI or HTTP servers:\r\n\r\n```console\r\n$ npm install ipfs-core\r\n```\r\n\r\nThen start a node in your app:\r\n\r\n```javascript\r\nimport * as IPFS from 'ipfs-core'\r\n\r\nconst ipfs = await IPFS.create()\r\nconst { cid } = await ipfs.add('Hello world')\r\nconsole.info(cid)\r\n// QmXXY5ZxbtuYj6DnfApLiGstzPN7fvSyigrRee3hDWPCaf\r\n```\r\n\r\n## Next Steps\r\n\r\n- Look into the [js-ipfs-examples](https://github.com/ipfs-examples/js-ipfs-examples) to learn how to spawn an IPFS node in Node.js and in the Browser\r\n- Read 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\r\n- Head over to <https://proto.school> to take interactive tutorials that cover core IPFS APIs\r\n- Check out <https://docs.ipfs.io> for tips, how-tos and more\r\n- See <https://blog.ipfs.io> for news and more\r\n- Need help? Please ask 'How do I?' questions on <https://discuss.ipfs.io>\r\n\r\n### Browser CDN\r\n\r\nYou can load IPFS right in your browser by adding the following to your page using the super fast [jsdelivr](https://www.jsdelivr.com) CDN:\r\n\r\n```html\r\n<!-- loading the minified version using jsDelivr -->\r\n<script src=\"https://cdn.jsdelivr.net/npm/ipfs-core/dist/index.min.js\"></script>\r\n\r\n<!-- loading the human-readable (not minified) version jsDelivr -->\r\n<script src=\"https://cdn.jsdelivr.net/npm/ipfs-core/dist/index.min.js\"></script>\r\n```\r\n\r\nInserting one of the above lines will make an `IpfsCore` object available in the global namespace:\r\n\r\n```html\r\n<script>\r\nasync function main () {\r\nconst node = await window.IpfsCore.create()\r\n// Ready to use!\r\n// See https://github.com/ipfs/js-ipfs#core-api\r\n}\r\nmain()\r\n</script>\r\n```\r\n\r\n### Browser bundle\r\n\r\nLearn how to bundle IPFS into your application with webpack, parceljs and browserify in the [examples](https://github.com/ipfs/js-ipfs/tree/master/examples).\r\n\r\n## Want to hack on IPFS?\r\n\r\n[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/CONTRIBUTING.md)\r\n\r\nThe IPFS implementation in JavaScript needs your help!  There are a few things you can do right now to help out:\r\n\r\nRead 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).\r\n\r\n- **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\r\n- **Perform code reviews** More eyes will help\r\n  a. speed the project along\r\n  b. ensure quality, and\r\n  c. reduce possible future bugs.\r\n- **Add tests**. There can never be enough tests.\r\n\r\n## License\r\n\r\nLicensed under either of\r\n\r\n- Apache 2.0, ([LICENSE-APACHE](LICENSE-APACHE) / <http://www.apache.org/licenses/LICENSE-2.0>)\r\n- MIT ([LICENSE-MIT](LICENSE-MIT) / <http://opensource.org/licenses/MIT>)\r\n\r\n## Contribute\r\n\r\nContributions welcome! Please check out [the issues](https://github.com/ipfs/js-ipfs/issues).\r\n\r\nAlso 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.\r\n\r\nPlease 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).\r\n\r\nUnless 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.\r\n\r\n[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/CONTRIBUTING.md)\r\n","readmeFilename":"README.md"}