Skip to main content
Synchronize a folder with its encrypted content

Home-page: https://github.com/liangqing/syncrypto
Author: Qing Liang
Author-email: liangqing226@gmail.com
License: http://www.apache.org/licenses/LICENSE-2.0
Description: Synchronize a folder with its encrypted content
===============================================

.. image:: https://img.shields.io/pypi/v/syncrypto.svg
:target: https://pypi.python.org/pypi/syncrypto/
:alt: Latest Version

.. image:: https://travis-ci.org/liangqing/syncrypto.svg?branch=master
:target: https://travis-ci.org/liangqing/syncrypto
:alt: Build And Test Status

.. image:: https://codecov.io/github/liangqing/syncrypto/coverage.svg?branch=master
:target: https://codecov.io/github/liangqing/syncrypto?branch=master
:alt: Code Coverage

.. image:: https://landscape.io/github/liangqing/syncrypto/master/landscape.svg?style=flat
:target: https://landscape.io/github/liangqing/syncrypto/master
:alt: Code Health

Introduction
============
You can use ``syncrypto`` to encrypt a folder to another folder which contains the
corresponding encrypted content.

The most common scenario is\:

.. code-block:: text

syncrypto syncrypto
plaintext folder A <-------------> encrypted folder B <-----------> plaintext folder C
in machine X in cloud storage in machine Y

The files in encrypted folder B are encrypted, so you can store it in any unsafe
environment, such as cloud service(Dropbox/OneDrive), USB storage or any other
storage that you can not control.

Each plaintext file has a corresponding encrypted file in the encrypted folder,
so if you modify one file in plaintext folder, there will be only one file
modified in the encrypted folder after synchronization. This make sure the
synchronization only changes the necessary content in encrypted folder, and is
very useful for file based cloud storage service to synchronizing minimal contents.

The synchronization is two-way, files not only syncing from plain text folder to
encrypted folder, but also syncing from encrypted folder to plain text folder.
``syncrypto`` will choose the newest file.

If conflict happens, ``syncrypto`` will rename the plaintext file(add 'conflict'
word in it), and sync the encrypted file.

``syncrypto`` never delete files, if files or folders should be deleted or over
written by the syncing algorithm, ``syncrypto`` just move the files or folders
to the trash, the trash in encrypted folder located at _syncrypto/trash,
at .syncrypto/trash in plaintext folder. Files in encrypted folder's trash are
also encrypted. You can delete any files in trash in any time if you make sure
the files in it are useless.


Installation
============

Support Platform
----------------

``syncrypto`` supports both python 2 and python 3, and is tested_ in\:

.. _tested: https://travis-ci.org/liangqing/syncrypto

* python 2.6
* python 2.7
* python 3.3
* python 3.4

And support Linux, OS X, Windows operating systems

Install Dependencies
--------------------

**If you are using windows, just jump to next**

Because ``syncrypto`` rely on cryptography_ , so need to install some
dependencies before install ``syncrypto``\:

.. _cryptography: https://github.com/pyca/cryptography

For Debian and Ubuntu, the following command will ensure that the required
dependencies are installed\:

.. code-block:: bash

sudo apt-get install build-essential libssl-dev libffi-dev python-dev


For Fedora and RHEL-derivatives, the following command will ensure that the
required dependencies are installed\:

.. code-block:: bash

sudo yum install gcc libffi-devel python-devel openssl-devel

For OS X, run\:

.. code-block:: bash

xcode-select --install


Install By pip
--------------

After installing all dependencies, you can install ``syncrypto`` by pip_ \:

.. _pip: https://pip.pypa.io/en/latest/installing.html

.. code-block:: bash

pip install syncrypto


Usage
=====

Synchronization
---------------

.. code-block:: bash

syncrypto [encrypted folder] [plaintext folder]

It will prompt you to input a password, if the encrypted folder is empty,
the input password will be set to the encrypted folder, or it will be used
to verify the password you set before (take it easy, ``syncrypto`` never store
plaintext password)

If you don't want input password in interactive mode, you can use --password-file
option\:

.. code-block:: bash

syncrypto [encrypted folder] [plaintext folder] --password-file [password file path]

The password file contains the password in it.

Notice that the first argument is encrypted folder, and the second one is
plaintext folder.



Platform: UNKNOWN
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Topic :: Communications :: File Sharing

Release files for syncrypto 0.3.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for syncrypto 0.3.8
File Interpreter ABI Platform
syncrypto-0.3.8-py2.py3-none-any.whl Python 3, Python 2 none any Details

Release files / syncrypto-0.3.8-py2.py3-none-any.whl

Download URL syncrypto-0.3.8-py2.py3-none-any.whl
Size 20.1 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
032ac77fc5abae5fae50011f492c2af86d33871bfcdf5caaa89ce1ad1b68124c
BLAKE2b-256 checksum
How to use checksums
863fb86180130ba0a286df24d25e55ddabffb839e3f67cdbbada1a2db05785a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

0.4.2

1 release file

0.4.1

1 release file

0.3.27

1 release file

0.3.26

1 release file

0.3.25

1 release file

0.3.24

1 release file

0.3.23

1 release file

0.3.22

1 release file

0.3.21

2 release files

0.3.20

1 release file

0.3.19

1 release file

0.3.18

1 release file

0.3.17

1 release file

0.3.16

1 release file

0.3.15

1 release file

0.3.14

1 release file

0.3.13

1 release file

0.3.12

1 release file

0.3.11

1 release file

0.3.10

1 release file

0.3.9

1 release file

This release

0.3.8 This release

1 release file

0.3.7

1 release file

0.3.6

1 release file

0.3.5

1 release file

0.3.4

1 release file

0.3.3

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.3.0

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.4

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

0.0.5

1 release file

0.0.4

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page