Skip to content

LLE8/cpp-ipfs-http-client

 
 

Repository files navigation

IPFS C++ HTTP API client library

Build Status Coverage Status Documentation GitHub Issues CII Best Practices

Allows C++ applications to communicate with an IPFS node. It implements IPFS API bindings for C++. See the documentation or the source code.

See also IPFS on GitHub.

Currently implemented methods:

  • block: get(), put(), stat()
  • config: get(), set(), replace()
  • dht: findpeer(), findprovs()
  • files: get(), add()
  • miscellaneous: id(), version()
  • object: new(), put(), get(), data(), links(), stat(), patch.addLink(), patch.rmLink(), patch.appendData(), patch.setData()
  • pin: add(), ls(), rm()
  • swarm: addrs(), connect(), disconnect(), peers()
  • key: gen(), list(), rm()

Not all methods are implemented.

TODO

  • Implement the missing methods
  • Contributors are welcome!

Install

cmake /path/to/cpp-ipfs-http-client
make
make install

See the documentation for details.

Dependencies

Usage

#include <iostream>
#include <sstream>

#include <ipfs/client.h>

int main(int, char**) {
  std::stringstream contents;

  ipfs::Client client("localhost", 5001);

  client.FilesGet("/ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/readme", &contents);

  std::cout << contents.str() << std::endl;

  return 0;
}
c++ -std=c++11 -I/path/to/header -L/path/to/lib -lipfs-http-client myprog.cc -o myprog

Contribute

Feel free to open issues and pull requests. Report vulnerabilities publicly, similar to other non-security issues.

The project adheres to the Google C++ Style Guide. Use clang-format to properly format the code when you submit patches.

Write tests for new code. Changes should not cause the code coverage to go down.

License

The code is distributed under the MIT License.

About

IPFS C++ HTTP API client library

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 97.3%
  • CMake 2.3%
  • Shell 0.4%