Currently supports talking to original SK Sync server version 1.0.01 and a original SK Sync (android) client can talk to Python SK Sync server using the direction setting of "from server (use time)" with recursive set to either yes or no.
pysksync implements some optional basic security enhancements that can be used even with the old Android client. There are also more advanced security enhancements that are not backwards compatible with the original implementation.
Supported Sync types
From server will ensure new/modified files are on both client and server.
- Deleted (server side) files, stay on the client.
- Renamed (server side) files, end up as duplicates on the client.
- Moved (server side) files, end up as duplicates on the client.
Currently SKSYNC_PROTOCOL_TYPE_FROM_SERVER_USE_TIME is implemented.
The following are implemented but the testsuite does not have full tests:
- SKSYNC_PROTOCOL_TYPE_TO_SERVER_USE_TIME - there are tests for this - this may be as well tested as FROM_SERVER
- SKSYNC_PROTOCOL_TYPE_BIDIRECTIONAL_USE_TIME - implemented and hand tested
The following are not (yet?) implemented:
- wildcard_NO_TIME - should be trivial, just remove timestamp checks.
- SKSYNC_PROTOCOL_TYPE_FROM_SERVER_NO_TIME - should be trivial, just remove timestamp checks.
- (JSON formatted) user editable config file
- full control over used ports
- only allow sync with directories specified by the server, prevents clients from accessing the entire server machine
- TLS/SSL support - encryption and optional certificate check for both client and server
- Authenticated clients via Secure Remote Password protocol (SRP-6a) support, see http://srp.stanford.edu/
- Compression support https://bitbucket.org/clach04/pysksync/branch/compression - for my use case (many small text files) negligible benefit
- Checksum support to detect comms errors
- different file protection methods to avoid destroying existing files in case of (comms) errors and other interuptions
Implement a gui (around) https://github.com/ponty/psidialogs (currently a very basic and limited demo around EasyDialogs is implemented that runs under Windows and Android).