Skip to main content

Python bindings to the Syncthing API

Project description

Pyncthing

This is a requests-based API client for Syncthing.

It's fully compatible with Syncthing v1.23.7.

Please see the full documentation on https://docs.syncthing.net/dev/rest.

Why ?

This project aims to write a simple and clean API client for desktop clients. It might be used as a backend for Syncthing-GTK in the near future.

There are 2 packages already existing: https://github.com/zhulik/aiosyncthing (a huge inspiration) and https://github.com/blakev/python-syncthing. But they are dead projects and not up to date (they don't support the PATCH API).

Installation

TODO:!

Usage

A "subdir" in the REST API is a property in pyncthing. For example, GET /rest/cluster/pending/devices will be done via sync.cluster.pending.devices()

from pyncthing import Syncthing

sync = Syncthing("http://localhost:8384/rest")

# This endpoint does not need authentication
assert sync.noauth.health()

# This does NOT check for authentication errors.
sync.set_api_key("<YOUR API KEY RETRIEVED ON THE WEB UI>")

print(sync.system.status())
for name, path in sync.system.paths():
    print(f"System path {name} is {path}")

for folder in sync.config.folders().get():
    print(folder["id"], folder["label"])

# This call is blocking!
# Even next() might block if no event is coming.
# You can stop blocked calls with sync.events.stop().
# Carefull, it blocks *all* calls!
# This API will probably change in the future.
for event in sync.events():
    print(event)

Thank you

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyncthing-0.1.0.tar.gz (6.7 kB view hashes)

Uploaded Source

Built Distribution

pyncthing-0.1.0-py3-none-any.whl (10.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page