IPFS C++ HTTP API client library
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.