SDKs and CLI Tools
The Joyent Manta Storage Service uses a REST API to read, write, and delete objects and to create jobs to process them.
Joyent provides several Software Development Kits so that you can use Joyent Manta in a language and framework that you already know. Some of these SDKs provide Command Line Interface (CLI) tools to help you learn the system.
Node.js SDK and CLI
The Node.js SDK was used to develop and to test the Joyent Manta Storage Service. It is the most robust SDK available for Joyent Manta.
The Node.js SDK includes a Command Line Interface that provides several tools that let you work with Joyent Manta much as you would work with a Unix system. We use this CLI for our Getting Started tutorial.
The documentation for Node.js SDK is here.
You can find the Node.js SDK at https://github.com/joyent/node-manta.
Python SDK and Joyent Manta Shell
The Python SDK is a community-maintained package for Manta, providing
a "manta" package and
mantash, a shell that lets you work with Joyent Manta in
a bash-like environment.
# Mantash single commands can be run like: # mantash ls # Or you can enter the mantash interactive shell and run commands from # there. Let's do that: $ mantash [jill@us-east /jill/stor]$ ls [jill@us-east /jill/stor]$ # our stor is empty [jill@us-east /jill/stor]$ put numbers.txt ./ # upload local file [jill@us-east /jill/stor]$ ls numbers.txt [jill@us-east /jill/stor]$ cat numbers.txt one two three four
You can find the Python SDK at https://github.com/joyent/python-manta.
The Ruby SDK is a client for communicating with Joyent Manta. It is effectively an HTTP(S) wrapper which handles required HTTP headers and performs some sanity checks. The Ruby SDK seeks to expose all of Joyent Manta's features in a thin low-abstraction client.
You can find the Ruby SDK at https://github.com/joyent/ruby-manta.
The R SDK is an interactive client in the form of an R package, that exposes all of Joyent Manta's features, and supports R on Unix, Linux and Windows.
Manta HTTPS authentication uses OpenSSL, and data transfer is done using RCURL. JSON logging of HTTPS traffic is done using the Rbunyan package, inspired by the bunyan logging module. Code example sessions are in the package R help, and Installation instructions on the GitHub README.md file.
To learn more about mantaRSDK see R Users, Meet Joyent Manta; Manta Users, Meet R.
The Java SDK has feature parity with the Node.js SDK. However, if new features are released it will be late to implement them. It supports all object operations, HTTP signing and compute jobs.
The Java SDK is available as a Maven module. To use it add the following to your project's pom.xml:
<dependency> <groupId>com.joyent.manta</groupId> <artifactId>java-manta</artifactId> <!-- replace this value with the specific version number --> <version>LATEST</version> </dependency>
You can find the source for Java SDK at https://github.com/joyent/java-manta.
The PHP SDK supports all object operations and compute jobs. It is a community driven SDK, so updates to it are dependent upon community involvement. The SDK is available as a Packagist package and can be installed using Composer:
composer require joyent/php-manta
It has been tested in PHP 5.6, PHP 7.0 and HHVM.
You can find the source for PHP SDK at https://github.com/joyent/php-manta.