Popularity
4.7
Growing
Activity
0.0
Stable
37
1
5

Monthly Downloads: 21
Programming language: Elixir
License:
Tags: Third Party APIs    

elixir_ipfs_api alternatives and similar packages

Based on the "Third Party APIs" category

Do you think we are missing an alternative of elixir_ipfs_api or a related project?

Add another 'Third Party APIs' Package

README

Build Status Inline docs

Current Version: v0.1.0

Elixir-Ipfs-Api

The Elixir library that is used to communicate with the IPFS REST endpoint.

elixir_ipfs_api

Documentation

The documentation is posted at hexdocs

How to use it

1. Add the library to mix.exs

The package is published on Hex. Add the elixir_ipfs_api as follow

defp deps do
    [
        ...
        {:elixir_ipfs_api, "~> 0.1.0"}
        ...
    ]
end

2. Start the IPFS Daemon

Start the IPFS daemon by running the following in terminal

$ ipfs daemon

This will start the ipfs daemon with the API endpoint at localhost:5001. If you want to start the API endpoint at a different address then add to the config

$ ipfs config Addresses.API /ipfs/127.0.0.1/tcp/5007

3. Create the IpfsConnection in your code

The IpfsConnection entity contains the information of the IPFS API endpoint. By default it will try to connect to http://localhost:5001/api/v0

conn = %IpfsConnection{host: "127.0.0.1", base: "api/v0", port: 5007}

Examples

Adding content to IPFS

iex> conn = %IpfsConnection{}
iex> IpfsApi.add(conn, "Hello world from Elixir-Ipfs-Api")
{:ok,
 %{"Hash" => "QmTcCZJEW1kUcYU1bKQk9SMGRsTisMMWXuxJ1AQerHwyaA",
 "Name" => "QmTcCZJEW1kUcYU1bKQk9SMGRsTisMMWXuxJ1AQerHwyaA"}}

Getting content from IPFS

iex> conn = %IpfsConnection{}
iex> IpfsApi.get(conn, "QmTcCZJEW1kUcYU1bKQk9SMGRsTisMMWXuxJ1AQerHwyaA")
<<81, 109, 84, 99, 67, 90, 74, 69, 87, 49, 107, 85, 99, 89, 85, 49, 98, 75, 81, 107, 57, 83, 77, 71, 82, 115, 84, 105, 115, 77, 77, 87, 88, 117, 120, 74, 49, 65, 81, 101, 114, 72, 119, 121, 97, 65, 0, 0, 0, 0, ...>>

TODO

  • [] Add stream for adding & getting files to and from IPFS
  • [] Add a pool to request from multiple different IPFS nodes