What is this?

csync is a file synchronizer especially designed for you, the normal user.

To be more precise csync is a client only bidirectional file synchronizer. You can use csync for different things. The intention is to provide Roaming Home Directories for Linux but you can use it to synchronize your music collection or create a backup of a directory.

csync is a library and ships commandline client by default.

News

csync version 0.50.0

The csync team is happy to announce the availability of the new csync release 0.50.0 which is available today.

csync is a bidirectional file synchronizer for Linux and allows to keep two copies of files and directories in sync. It uses widely adopted protocols like smb or sftp without a need for a server component. It is a user-level program which means there is no need to be a superuser. With pam_csync it is possible to provide roaming home directories in Linux and Active Directory environments.

You can download csync the new release here.

With this release we add a module to support ownCloud, the private cloud infrastructure software. Sync of files into your private cloud becomes easy with that. Moreover csync is now also available for windows platforms and Mac OSX. The csync library API was enhanced to support applications to take more influence on csync’s core behavior as well as the library is handing out more information about progress. Also it is now even easier to write custom backend modules for csync due to higher flexibility added to the module interface. The license of the csync library was changed to GNU LGPL to broaden the scope of application.

We think this is a great step forward for csync and thank everybody who has contributed to csync.

The userguide is a good place to start with csync.

ChangeLog

  • Added owncloud module.
  • Added support for more platforms: FreeBSD, Windows and MacOSX
  • Added support for more compilers: CLang, MinGW and latest GCC
  • Added a backup mode to the reconciler.
  • Added new logging framework (removed log4c dependency).
  • Added new config parser (removed iniparser dependency).
  • Added cmocka tests.
  • Added a way to exported file_tree_walk functions.
  • Added capabilities for modules.
  • Added possiblity to push information to the modules.
  • Added iconv support to support various char sets.
  • Added csync_commit() to rerun on the same context.
  • Added content checking in conflict case.
  • Added callbacks for progress information.
  • Added get() and put() functions for modules.
  • Improved database: more performance, more integrity checks.
  • Improved error reporting: status codes, custom errnos.
  • Fixed serveral bugs.
  • Relicensed libcsync to LGPLv2.1+.

Changes and new license

Klaas and I are working on new features and refactored some code in csync. We are working on getting a new release ready soon but it isn’t easy. As we change a lot of stuff we also need to write tests for this and make sure the new code design is robust and we don’t forget any corner cases. Writing a file synchronizer isn’t easy. If you have bigger mistakes you can loose your data which should never happen.

Here is a list of changes so far:

  • Added New logging system to get rid of the dead log4c library
  • Added Capabilities support for modules
  • Added Windows support
  • Addded iconv support for non-UTF8 filesystems
  • Added ownlcoud support
  • Changed from check to cmocka unit testing framework

TODO:

  • Add Better return codes and information for the user
  • Add possibility to pass more variables to modules
  • Add put()/get() method support to modules
  • Add an abort callback to stop the synchronization

After that the plan is to relicense the library from GPL to LGPL.

Next version of csync

We are still working on getting a new version of csync out with a lot of new features, improvements and bugfixes. Currently we are porting back patches from ownCloud to have a clean codebase. Stay tuned!

csync 0.44.0 STABLE

Version 0.43.0 of csync with enhanced SFTP support is ready for download! csync is a bidirectional file synchronizer for Linux and allows to keep two copies of files and directories in sync. It uses widely adopted protocols like smb or sftp so that there is no need for a server component of csync. It is a user-level program which means there is no need to be a superuser. With pam_csync it is possible to provide roaming home directories in Linux and Active Directory environments.

The userguide is a good place to start with csync.

Packages are available in the download section. Please report bugs to the bugtracker.

ChangeLog

  • Migrated sftp module to libssh 0.4.
  • Added more cache entries to the default config.
  • Added missing requirements.
  • Fixed build warnings.
  • Fixed some memory leaks using sftp attributes.
  • Some code cleanups.

pam_csync 0.42.0 STABLE

This is the stable release of pam_csync 0.42.0. pam_csync is a PAM (Pluggable
Authentication Modules) module to provide roaming home directories for a
user session. This module is aimed at environments with central file servers a
user wishes to store his home directory. The Authentication Module verifies the
identity of a user and triggers a synchronization with the server on the first
login and the last logout.

You can find packages here.

ChangeLog

  • Added support to sync with the Windows Home Directory

csync 0.43.0 STABLE

Version 0.43.0 of csync with SFTP support is ready for download! csync is a bidirectional file synchronizer for Linux and allows to keep two copies of files and directories in sync. It uses widely adopted protocols like smb or sftp so that there is no need for a server component of csync. It is a user-level program which means there is no need to be a superuser. With pam_csync it is possible to provide roaming home directories in Linux and Active Directory environments.

The userguide is a good place to start with csync.

Packages are available in the download section. Please report bugs to the bugtracker.

ChangeLog

  • Added SFTP support with libssh 0.3.
  • Added possibility to pass userdata to the auth function.
  • Added a better version function.
  • Fixed CMake build.
  • Fixed CMake find modules.
  • Documented all public functions.

Slides of SambaXP 2009

As some people already asked you can find the slides of my talk at SambaXP 2009 here.

csync 0.42.0 STABLE

This is it, the first stable release of csync! csync is a bidirectional file synchronizer for Linux and allows to keep two copies of files and directories in sync. It uses widely adopted protocols like smb or sftp so that there is no need for a server component of csync. It is a user-level program which means there is no need to be a superuser. With pam_csync it is possible to provide roaming home directories in Linux and Active Directory environments.

The userguide is a good place to start with csync.

Packages are available in the download section. Please report bugs to the bugtracker.

NOTE: If you want to use csync with sftp. Compile the latest libssh version from svn and apply this patch to the csync source.

csync for Maemo

Thanks to Jan-Simon Möller, csync is available for the Meamo plattform to. You find all information at:

http://www.csync.org/maemo/

csync 0.42.0 rc3

This is the third and hopefully the last release candidate of csync 0.42.0.
csync is a bidirectional file synchronizer for Linux and allows to keep two
copies of files and directories in sync. It uses uses widly adopted protocols
like smb or sftp so that there is no need for a server component of csync. It
is a user-level program which means there is no need to be a superuser. With
pam_csync it is possible to create roaming home directories.

The userguide is a good place to start with csync.

Packages are available in the download section. Please report bugs to the bugtracker.

ChangeLog

  • Added checks for unix extensions.
  • Added more documentation to the userguide.
  • Fixed loading of plugins.
  • Fixed call for deletion functions.
  • Normalize the path to <hostname>/<path> for the statedb filename.
  • More change name of client options to be more descriptive.

The change to normalize path for the statedb filename means that it do a full sync. It could happen that deleted files will reappear.

NOTE: sftp is still really slow. This will be fixed with the next libssh version and I will release a new csync version which works with libssh 0.2.1.