Skip to content

zabirauf/elixir-ipfs-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

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

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages