Awesome
Current Version: v0.1.0
Elixir-Ipfs-Api
The Elixir library that is used to communicate with the IPFS REST endpoint.
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