A wrapper of the IPFS Client HTTP-API for Scala.
Branch: master
Clone or download
magik6k Merge pull request #4 from ipfs/feature/standardize-readme
Standardize README and add License
Latest commit adf12f6 Jul 14, 2016



standard-readme compliant

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.

Including in your Java/Scala project

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.

Java usage

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();

Adding and retrieving data
        //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

package sources only

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

stand-alone jar

To create a stand-alone jar that includes all dependencies, do

sbt assembly

which will create a 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.