The Development Kit is the foundation of our products; if you own any qualifying products, the Development Kit may be licensed as an add-on. For standalone development, the SDK is typically added on to FileCatalyst Direct; however, some components are designed to interact with FileCatalyst Workflow.

Client API

Our well-documented API gives access to every method needed to establish a connection to a FileCatalyst Server for accelerated file transfers. With a few short lines of code, you can be underway. Default values are used for most functions, with a full range of method calls allowing you to access advanced features.

The Client API also allows you to programmatically submit jobs and files to FileCatalyst Workflow or Webmail.

HotFolder REST API

TransferAgent JavaScript and REST API

The TransferAgent JavaScript and REST APIs allow for tight integration with any web application. It allows web applications to access/browse the local file systems, add files to a queue, initiate and monitor ongoing file transfers. All of this can be done though JavaScript, or directly through REST calls.

Central REST API

The FileCatalyst Central API provides access to all reporting data for all connected nodes, and also acts as a reverse HTTP proxy to access the REST APIs of individual connected nodes, like Server, HotFolder and TransferAgent (coming in v3.7).

Workflow REST API

A RESTful API for FileCatalyst Workflow exposes a number of management functions through the web. These include:

Add/Edit/Delete Users

Add/Edit/Delete Groups

Add/Edit/Delete Order forms

Add/Edit/Delete FTP Sites

List Job Fields

.NET Wrapper

The .NET wrapper offers transparent and thread-safe access to the FileCatalyst command-line in .NET. One potential application is to use
FileCatalyst technology to develop within the Microsoft development framework. The .NET wrapper requires an official Java runtime and FileCatalyst CLI.

Command Line Interface

Using the CLI, access FileCatalyst functionality through virtually any scripting language, or from many other programming languages. Any tool able to output to the command line can be used to trigger FileCatalyst file transfers.

C++ Native Client Library

FileCatalyst products are built using Java as the main programming language. This has always
allowed us to keep a centralized code base and be compatible across multiple platforms and browsers
(via Java Applet Plugin). 95% of systems (desktop/laptop/servers) found on the market today, including
Windows, MacOSX, Linux, Solaris, and AIX, can utilize our existing software.

However, there are certain systems where Java is not available. In many set top boxes and embedded systems
(network appliance, gaming consoles), Java is not installed or available. This ecosystem was unable to take
advantage of our solutions.

In light of this, we have developed a C++ client solution. Available as both a native C++ API or as a native
command-line executable (.exe for Windows, 32 or 64-bit binary for Linux), our FileCatalyst C++ client will
allow file transfer acceleration on systems that do not have Java installed.

#include <FileCatalyst.hpp>
void example( const std::string &serverIpOrHostname,
const std::string &username,
const std::string &password )
{
// Set a few options needed by fc::Control so it knows how to behave.
fc::Options options;
options.setFtpServer( serverIpOrHostname, 21 );
options.setUsernameAndPassword( username, password );
options.setMd5Verification( true );
options.setMode( fc::kUdp );
// Create the FTP fc::Control object. Once it is created, the
// fc::Options object is no longer required and can go out-of-scope.
fc::Control ftp( options );
// Connect to the server with the options originally provided by
// fc::Options. If connect() is not explicitly called, then the
// connection is deferred until a method is called which needs to
// communicate directly with the server.
ftp.connect();
// Note that even after a connection has been established, many (but
// not all) FTP settings can still be modified.
fc::Options newOptions = ftp.getOptions();
newOptions.setBandwidth( fc::k100_Mbps );
ftp.setNewOptions( newOptions );
// Download some files from the server.
ftp.prepareRecursiveDir( fc::Remote("/project"), fc::Local("/tmp") );
ftp.download();
...
}

We have currently ported the library to the following platforms:

Windows 32-bit

Windows 64-bit

Linux 64-bit (.deb)

Linux 64-bit (.rpm)

Linux ARM 7 32-bit (.deb)

Linux ARM 7 32-bit (.rpm)

OSX 64-bit

If you require a port to a specific platform, contact us with the details.