Skip to content
Java Manta Client SDK
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Build Status

Java Manta Client SDK

java-manta is a community-maintained Java SDK for interacting with Joyent's Manta system.

Projects Using the Java Manta Client SDK


Java 1.8 is required for SDK compilation. It effectively supports both Java 8 and Java 11 in application usage. The main client module can be installed by adding the following dependency using Maven 3.1.x:


and the unshaded module can be installed by adding the following dependency using Maven 3.1.x:


Please refer to the installation documentation for more details about the following topics:


Configuration can be done through system properties or environment variables. Listed below are the most commonly used configuration options:

System Property Environment Variable Default
manta.url MANTA_URL
manta.user MANTA_USER
manta.key_id MANTA_KEY_ID
manta.key_path                     MANTA_KEY_PATH                 $HOME/.ssh/id_rsa (if exists)
  • manta.url ( MANTA_URL ) The URL of the manta service endpoint to test against
  • manta.user ( MANTA_USER ) The account name used to access the manta service. If accessing via a subuser, you will specify the account name as "user/subuser".
  • manta.key_id: ( MANTA_KEY_ID) The fingerprint for the public key used to access the manta service. Can be obtained using ssh-keygen -l -f ${MANTA_KEY_PATH} -E md5 | cut -d' ' -f 2
  • manta.key_path ( MANTA_KEY_PATH) The name of the file that will be loaded for the account used to access the manta service.

Please refer to the configuration documentation for example code and the full list of configuration options which include retry and performance tuning in addition to encryption and authentication parameters.


You'll need a manta login, an associated key, and its corresponding key fingerprint.

You will then create or use an implementation of ConfigContext to set up your configuration. Once you have an instance of your configuration class, you will then construct a MantaClient instance. The MantaClient class is intended to be used per Manta account. It is thread-safe and you should share one instance across multiple threads.

For detailed usage instructions consult the provided JavaDoc and examples. The JavaDoc can also be browsed online at

General Examples

Job Examples

Jobs can be created directly with the MantaClient class or they can be created using the MantaJobBuilder class. MantaJobBuilder provides a fluent interface that allows for an easier API for job creation and it provides a number of useful functions for common use cases.

For more examples, check the included examples module and the integration test module.


Known edge cases and other topics are covered in the FAQ.


Contributions are welcome! Please read the document for details on getting started.


There are portions of the SDK that are somewhat complex or fiddly. Please read the document for details, before developing the Java SDK.


Contributing developers are strongly encouraged to add unit-tests and integration-tests. Refer to the testing documentation for information on full test suite requirements.


Please refer to the release documentation.




Java Manta is licensed under the MPLv2. Please see the LICENSE.txt file for more details. The license was changed from the MIT license to the MPLv2 license starting at version 2.3.0.


We are grateful for the functionality provided by the libraries that this project depends on. Without them, we would be building everything from scratch. A thank you goes out to:

You can’t perform that action at this time.