<span class="latin" style="width:19px;height:19px;">G</span><span class="latin" style="width:19px;height:19px;">r</span><span class="latin" style="width:19px;height:19px;">o</span><span class="latin" style="width:19px;height:19px;">u</span><span class="latin" style="width:19px;height:19px;">p</span><span class="latin" style="width:19px;height:19px;">:</span><span class="latin" style="width:19px;height:19px;">S</span><span class="latin" style="width:19px;height:19px;">y</span><span class="latin" style="width:19px;height:19px;">n</span><span class="latin" style="width:19px;height:19px;">c</span><span class="latin" style="width:19px;height:19px;">R</span><span class="latin" style="width:19px;height:19px;">e</span><span class="latin" style="width:19px;height:19px;">p</span><span class="latin" style="width:19px;height:19px;">l</span><span class="latin" style="width:19px;height:19px;">a</span><span class="latin" style="width:19px;height:19px;">c</span><span class="latin" style="width:19px;height:19px;">e</span><span class="latin" style="width:19px;height:19px;">m</span><span class="latin" style="width:19px;height:19px;">e</span><span class="latin" style="width:19px;height:19px;">n</span><span class="latin" style="width:19px;height:19px;">t</span><span class="latin" style="display:block;width:19px;height:19px;"> </span><span class="latin" style="width:19px;height:19px;">-</span><span class="latin" style="display:block;width:19px;height:19px;"> </span><span class="latin" style="width:19px;height:19px;">L</span><span class="latin" style="width:19px;height:19px;">i</span><span class="latin" style="width:19px;height:19px;">b</span><span class="latin" style="width:19px;height:19px;">r</span><span class="latin" style="width:19px;height:19px;">e</span><span class="latin" style="width:19px;height:19px;">P</span><span class="latin" style="width:19px;height:19px;">l</span></span><span class="tktr-gyo" style="height:640px;margin:0 0 180px 22px;font-size:19px;_width:19px;/width:19px;"><span class="latin" style="width:19px;height:19px;">a</span><span class="latin" style="width:19px;height:19px;">n</span><span class="latin" style="width:19px;height:19px;">e</span><span class="latin" style="width:19px;height:19px;">t</span>  

Navigation menu




LibrePlanet


About 
About LibrePlanet
Mission Statement
Founding documents
Support this Community
Code of Conduct
Anti-harassment policy
Teams 
Activists
Wiki Helpers
LibrePlanet Artists
FSF Community Team
Local & Student Teams
Conferences 
LibrePlanet Conference
Non-official
Get involved 
Participate
Discussion channels
Events
 


Login
 










Group: SyncReplacement

 

From LibrePlanet


Jump to: navigation, search  

SyncReplacement is an FSF Priority Project. Bittorrent Sync is a peer-to-peer, two-way file synchronization utility with fine-grained access controls. We need a free software version of this client or free software that can be used for the same purpose.

If you are interested, please join this group (start by leaving your name here). We should start by surveying any existing free software that is in or close to this area (TahoeLAFS might be one), and making a list of features that are needed.

The SyncReplacement IRC channel can be found at #freesync, on Freenode.

Contents

Important News!

Recently, I posted my idea for a BTSync replacement here, below. After it was posted, I began communicating with a volunteer for the German federal disaster relief organization, THW. He wants to potentially use this program in connection with their disaster relief efforts, but he needs it to have additional functionality, including the ability to synchronize between more than two computers and the ability to do block-level synchronization. I have been trying to add that functionality, but it obviously takes a good deal of time to do so, and more than I currently have. Additionally, I need multiple computers to test the latest version, a resource which I do not have. Would anyone be interested in working with me to add some of this functionality to the program and help test the program? If so, please let me know. You can contact me at jhunter (dot) dunefsky (at) gmail (dot) com.

Thanks Hunter D

Existing Solutions

We need a survey of existing solutions, their features, pros, and cons.

In development

Currently there's a protocol description implemented by Jewel in a ruby client:

https://github.com/jewel/clearskies

And there's an effort to create a portable C++ daemon for the clearskies protocol:

https://github.com/larroy/clearskies_core

Librevault

Librevault is an open-source BitTorrent Sync alternative. Written in C++, it is under active development now. The protocol uses TLS as a transport.

Implemented features

Sync daemon uses Boost, Crypto++ and Protocol Buffers. GUI uses Qt 5.3 (min). The protocol between Daemon and GUI is WebSockets. WebUI will arrive in the next releases.

Documentation and protocol specification are Work-In-Progress now.

Librevault is released under GPLv3 license.

Hive2Hive

Hive2Hive is an open-source library, written in Java, for distributed, P2P-based file synchronization and sharing. It provides a free, distributed solution that focuses on maximum security and privacy of both users and data. It supports the whole feature set known from similar centralized approaches, such as Dropbox or Google Drive, all packed in a clean, extendable API. On top of that, it has several other advantages that are described on their website. The project is hosted on GitHub:

https://github.com/Hive2Hive/Hive2Hive

Syncthing

Under active development in Go, syncthing claims to be an "Open Source Continuous File Synchronization" solution. It specifies a protocol Block Exchange Protocol and a reference implementation. Syncthing is released under the GPLv3 license. It is Peer to Peer (p2p) so no server required, but by convention, you can (or not) determine any device as a central server.

osync

A two way filesync script with fault tolerance, resume, soft deletion, conflictual file backups running on bash (linux, BSD and virtually any system supporting bash). File synchronization is bidirectional, based on rsync, can be run manually, as scheduled task, or triggered on file changes.

Non-Free

BTSync

The software that lit a fire under this project.


Cubby

A DropBox competitor that offers peer to peer file sync called 'DirectSync'.

Free

This section might need pruning, the things listed might not be entirely free.

RetroShare

A decentralised communication platform that allows file sharing.

Features
peer discovery with DHT
NAT traversal
encryption and authentication with PGP+OpenSSL
gui to manage friends+groups
additional functionality like chat, groupchat, voip... I think it is nice to have chat and shared folders at the same place. This would enable fast collaboration.
Retroshares core "libretroshare" is written in C++, and runs on every platform with sockets and a file system
Retroshare-gui uses Qt and runs on win, linux, mac
Plugins can use the secure link to send/receive data to/from peers.
Resumable transfers and swarming
Pros
no worry about finding peers or securing the connection
Retroshare has a community of developers, testers, translaters and packers. So we could concentrate on the main thing: how to get different states of a folder in sync.
Cons
Perhaps this does too much? We want a drop in replacement for BTSync, this comes with a whole raft of additional features that might not appeal to users.

Unison

sparkleshare

csync

csync2

lsyncd

inosync

ToxBox

git-annex assistant

git-annex can be used for basic synchronization or more sophisticated setups, such as syncing by way of an intermediate USB drive instead of over the net (see "special groups").

The underlying system is based on git and rsync, but the web interface can be used to set things up without much command-line knowledge.

The "assistant" part is the service that watches for changes, makes commits, and automatically syncs to remotes.

Our Solution

Language

Features

The Protocol

for every shared folder we have:

(set by admin, so update is simple with timestamp)

created by users with permissions:

file metadata item:

How sync works:

  1. file metadata items are exchanged, so everyone has the same list
  2. fileitems with same path/name are ordered, so that we know the newest state of the file
  3. files are transferred

Conflicts need to be handled by the user

More thoughts

People

Here's a list of people that have volunteered to be a part of this project so far. Feel free to add yourself to this list.

Gittorrent seems dead. contact me at tobias [ät] platen-software [döt] de

I have experience with Java, Python and C. I learn C++ and Qt.

Hi, I am Raman and I would like to contribute to this project. I am SDE at Hike Messenger. I know python, C, bash, system designing. You can contact me at ramanatnsit@yahoo.com


Retrieved from "https://libreplanet.org/wiki?title=Group:SyncReplacement&oldid=64675" 



















FSF
The Free Software Foundation (FSF) is a nonprofit with a worldwide mission to promote computer user freedom.

We defend the rights of all software users. (Read more)
 



Campaigns


High Priority Free Software Projects

Free JavaScript

Secure Boot vs Restricted Boot

GNU Operating System

Defective by Design

See all campaigns
 



Get Involved



Contact
 




Send your feedback on our translations and new translations of pages to campaigns@fsf.org.

Copyright © 20132023 Free Software Foundation, Inc.  Privacy Policy, JavaScript license information