# browser-ipfs

> Simplified IPFS api targeted at the browser

Latest version **0.0.6** (published 2016-04-26) · ISC license · 0 weekly downloads

## Install

```sh
npm install browser-ipfs
pnpm add browser-ipfs
yarn add browser-ipfs
bun add browser-ipfs
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.6 |
| Published | 2016-04-26 |
| First published | 2016-04-12 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 22 |
| Author | ConsenSys |
| Maintainers | pelleb |
| Keywords | ipfs |

## Links

- npm: https://www.npmjs.com/package/browser-ipfs
- Repository: https://github.com/pelle/browser-ipfs
- Issues: https://github.com/pelle/browser-ipfs/issues
- npm.io page: https://npm.io/package/browser-ipfs

## Recent versions

- 0.0.6 (latest) — 2016-04-26
- 0.0.5 — 2016-04-13
- 0.0.4 — 2016-04-13
- 0.0.3 — 2016-04-13
- 0.0.2 — 2016-04-12
- 0.0.1 — 2016-04-12

## README

# Browser friendly ipfs.js light

This is meant to implement the most common use cases for using ipfs in a browser. It has zero dependencies.

It meant to be mostly compatible with [ipfs.js](https://github.com/consensys/ipfs.js) with a few key differences:

- no specific support for Buffers. Buffer's still work, see caveat below in documentation for ipfs.cat
- only implements simple add and cat functionality
- Basically if you're using ipfs as a simple KV store, this should do the trick

Run `npm install browser-ipfs`

Or reference `dist/ipfs.min.js` inside a `<script />` to expose the global `ipfs`

## Example

### 1) Set IPFS CORS access

       ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'
       ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST"]'
       ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials '["true"]'

### 2) Start IPFS

       ipfs daemon

### 3) Upload example directory

`git clone https://github.com/ConsenSys/ipfs.js && cd ipfs.js`

For non-default ipfs configurations, you can run `./example.url` to `ipfs add -r example` and print the local gateway's url

### 4) Open IPFS gateway

Navigate to the url echoed from `./example.url` in the browser, or run `./example.url | xargs open` to open it on OSX

## Methods

#### `ipfs.setProvider({host: 'localhost', port: '5001'})`

* _localhost_ and _5001_ are the defaults when calling without arguments
* is also equivalent to `ipfs.setProvider({host: '/ip4/127.0.0.1/tcp/5001'})`

### `ipfs.setProvider(require('ipfs-api')('localhost', '5001'))`

#### `ipfs.add(stringOrBuffer, callback)`

	ipfs.add("Testing...", function(err, hash) {
		if (err) throw err; // If connection is closed
		console.log(hash); 	// "Qmc7CrwGJvRyCYZZU64aPawPj7CJ56vyBxdhxa38Dh1aKt"
	});

#### `ipfs.cat(hash, callback)`

Since we want to avoid including Buffer as a specific dependency. You need to manually convert the data returned from cat to a Buffer if that is what you're expecting.

  ipfs.cat("Qmc7CrwGJvRyCYZZU64aPawPj7CJ56vyBxdhxa38Dh1aKt", function(err, data) {
    if (err) throw err;
    console.log(new Buffer(data,'binary').toString());   // "Testing..."
  });

#### `ipfs.catText(hash, callback)`

	ipfs.cat("Qmc7CrwGJvRyCYZZU64aPawPj7CJ56vyBxdhxa38Dh1aKt", function(err, text) {
		if (err) throw err;
		console.log(text); 	// "Testing..."
	});

  new buffer.Buffer(data, 'binary')

#### `ipfs.addJson(json, callback)`

#### `ipfs.catJson(hash, callback)`

---
_Source: https://npm.io/package/browser-ipfs · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
