A wrapper of the IPFS Client HTTP-API for Scala.
A JVM client library for interacting with IPFS from Java/Scala environments.
A full java-doc site is available here.
resolvers += "scala-ipfs-api" at "https://ipfs.io/ipfs/QmbWUQEuTtFwNNg94nbpVY25b5PAyPQTd7HhkDsGhRG8Ur/"
libraryDependencies += "io.ipfs" %% "scala-ipfs-api" % "1.0.0-SNAPSHOT",
Although this is considered a bad practice, you may still want to manually put fat-jar generated from assembly task into your classpath, take a look at stand-alone jar creation below.
A working Java example available here.
IPFS API calls are available using a Client instance.
Client client = new Client("localhost", 5001, "/api/v0", "http");
Almost all of the API calls return strongly typed POJOs, for example the node configuration can be retrieved with
ConfigShow configShow = client.configShow();
//create test file
Path addPath = Paths.get("ipfs.put.tmp.txt");
Files.write(addPath, "Hello IPFS!".getBytes(), StandardOpenOption.CREATE);
//add to IPFS
Add[] add = client.add(new Path[]{addPath});
Add added = add[0];
System.out.println("Added "+ added.Name() +" with hash "+ added.Hash());
//get from IPFS
Path getPath = Paths.get("ipfs.get.tmp.txt");
try (InputStream inputStream = client.cat(added.Hash())) {
Files.copy(inputStream, getPath, StandardCopyOption.REPLACE_EXISTING);
}
The package can be built using sbt.
Compile the project with
sbt compile
To build a Java archive, use
sbt packageBin
which will create a jar like target/scala-2.10/scala-ipfs-api_2.10-1.0.0-SNAPSHOT.jar
To create a stand-alone jar that includes all dependencies, do
sbt assembly
which will create a jar
target/scala-2.10/ipfs.api.jar
Unit / Integration tests can be run with
sbt test
Feel free to join in. All welcome. Open an issue!
This repository falls under the IPFS Code of Conduct.