Pronounced as Any Sync.
NeSync is a modern backup/sync software for desktop with a GUI.
It monitors your filesytem for events (modification, create, delete and move) then adds detected changes to your files in historical order.
In each revision you can add description to changed file. It works with every file format and compatible with Linux, Windows and MacOS.
NeSync uses intenal filesystem which is OS independent.
That is, you create your own folder tree inside the app then assign this folders to your OS file system.
This allows you to transfer your folder tree (with historical changes) from computer to computer (even between different OSes).
Transfers are done via zip files (manually exported and imported as zip by the user).
NeSync does not connect to the internet and works offline completely.
NeSync is Free and open-source software (FOSS) and source code licensed under GPL v3 (completely open to the public).
WARNING: NeSync is currently in pre-alpha stage and it's not complete yet.
Executables are available in the Releases page.
- Fully multi-threaded architecture
- Small memory footprint
- Designed for modern OSes (Minimum required OS: Windows 10 1809 or Linux kernel 5.4)
- Complete privacy (no internet connection at all)
-
You will see different project names in the git history such as
XdBackup
andBoldBackup
.
These are old names for the NeSync. -
If you detect network activity related with NeSync process you can safely ignore it.
This activities probably generated by the OS. Especially on Windows (see VirusTotal link in download section). -
MacOS support is not properly tested and I DO NOT provide official builds currently.
-
When importing a zip file, json schema of
import.json
IS NOT verified.
This is a huge security risk. Only import files which you know the source.
- Only CMake is supported (both on Linux and Windows).
- Minimum Qt 6.3 required.
- Compiling in all platforms tested with gcc compiler (MinGW on Windows).
- I've never tested MSVC.
git clone https://github.com/fxdeniz/NeSync.git
git submodule update --init
-
Building on Linux
-
Install
Qt 5 Compability Module
fromQt Maintaince Tool
. -
Install
zlib-devel
andbzip2-devel
(on fedora) ORzlib1g-dev
andlibbz2-dev
(on debian). -
Then compile using Qt Creator.
-
-
Building on Windows
-
Install
Qt 5 Compability Module
fromQt Maintaince Tool
. -
Extract the zips.
-
Copy the content of the extracted zips to matching folders of your MinGW directory.
Example MinGW directoryC:\Qt\Tools\mingw1120_64\
. This directory is created when installing Qt 6.4 and Qt 6.5. If you have different Qt version then yourC:\Qt\Tools\mingwXXXX_XX\
will be different.
Example forzlib
:mingw64\bin\zlib1.dll ---> C:\Qt\Tools\mingw1120_64\bin\zlib1.dll mingw64\include\zlib.h ---> C:\Qt\Tools\mingw1120_64\include\zlib.h mingw64\include\zconf.h ---> C:\Qt\Tools\mingw1120_64\include\zconf.h mingw64\lib\libz.a ---> C:\Qt\Tools\mingw1120_64\lib\libz.a mingw64\lib\libz.dll.a ---> C:\Qt\Tools\mingw1120_64\lib\libz.dll.a
Do the same for
bzip2
. -
Then compile using Qt Creator.
-
I use camel case notation where only class initals are capitalized.
And Allman style indentation with tab equal to 4 spaces.
Example:
class ExampleClass
{
void doSomething()
{
if(x == y)
doOtherThing();
else
{
doLongConditionalItem1();
doLongConditionalItem2();
}
}
};
- Create an issue.
- Make a pull request linked to a created issue.
For the near future I'm planning to add these features:
- Documentation for the code (compatible with Doxygen)
- Local logging
- SpartanJ for efsw library | GitHub Repo
- stachenov for QuaZip library | GitHub Repo
- Qt Framework developers for Qt Framework | The Qt Company Website
- SQLite project team for SQLite | SQLite Home Page
- Jean-loup Gailly & Mark Adler for zlib library | zlib Home Site
- Julian Seward for bzip2 library | bzip2 Home
- juicy_fish for application icon | freepik.com
- NSIS Community for Windows installer | NSIS Wiki