rclone/librclone/README.md
Nick Craig-Wood ba09ee18bb librclone: factor into gomobile and internal implementation #4891
This was needed because gomobile can't use a main package wheras this
is required to make a normal shared C library.
2021-04-28 16:55:08 +01:00

1.4 KiB

librclone

This directory contains code to build rclone as a C library and the
shims for accessing rclone from C and other languages.

Note for the moment, the interfaces defined here are experimental
and may change in the future. Eventually they will stabilse and this
notice will be removed.

C

The shims are a thin wrapper over the rclone RPC.

Build a shared library like this:

go build --buildmode=c-shared -o librclone.so github.com/rclone/rclone/librclone

Build a static library like this:

go build --buildmode=c-archive -o librclone.a github.com/rclone/rclone/librclone

Both the above commands will also generate librclone.h which should
be #included in C programs wishing to use the library.

The library will depend on libdl and libpthread.

Documentation

For documentation see the Go documentation for:

C Example

There is an example program ctest.c with Makefile in the ctest subdirectory

gomobile

The gomobile subdirectory contains the equivalent of the C binding but
suitable for using with gomobile using something like this.

gomobile bind -v -target=android github.com/rclone/rclone/librclone/gomobile