13 releases

0.4.0 Oct 1, 2022
0.3.0 Aug 4, 2019
0.2.2 May 11, 2018
0.2.1 Mar 12, 2018
0.1.5 Oct 18, 2017

#2026 in Network programming

Download history 1811/week @ 2024-06-06 1847/week @ 2024-06-13 1593/week @ 2024-06-20 1090/week @ 2024-06-27 1632/week @ 2024-07-04 1694/week @ 2024-07-11 1754/week @ 2024-07-18 1719/week @ 2024-07-25 1897/week @ 2024-08-01 1833/week @ 2024-08-08 1846/week @ 2024-08-15 1768/week @ 2024-08-22 2184/week @ 2024-08-29 1787/week @ 2024-09-05 2068/week @ 2024-09-12 2593/week @ 2024-09-19

8,990 downloads per month

MIT license

23KB
490 lines

Rust IPFS API Client

Crates.io Docs.rs

A client library for the IPFS API.

This library allows you to use the local IPFS daemon from Rust.

Usage

[dependencies]
ipfsapi = "0.4"

Examples

Reading a file from IPFS

Here's an example that gets the contents of a file from IPFS and displays it.

let api = IpfsApi::new("127.0.0.1", 5001);

let bytes = api.cat("QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u").unwrap();
let data = String::from_utf8(bytes.collect()).unwrap();

println!("{}", data);

The code gets the content of the IPFS hash and displays "Hello World".

Subsribing to messages on IPFS Pubsub

let api = IpfsApi::new("127.0.0.1", 5001);

let messages = api.pubsub_subscribe("chat").unwrap();

for message in messages {
    println!("{:?}", message);
}

Implemented Functionality

  • Getting file contents from IPFS (cat)
  • Pubsub
  • IPNS publish and resolve
  • Object/Hash stats (size, etc.)
  • Version information of the daemon
  • Pinning and unpinning files
  • Shut down IPFS daemon
  • Get and put blocks

Dependencies

~2.1–3MB
~70K SLoC