Janus is a high-performance file sync tool built to provide superior performance to rsync in large-scale directories with hundreds of thousands of files.
Janus leverages Kotlin Coroutines alongside Java NIO's asynchronous file and networking capabilities to maximize overall system performance.
Janus Protocol is the way Janus processes communicates.
Janus Protocol is specified under folder protocol
You can access protocol version n by reading protocol/{n}.md, in which {n} is the version code like 1.
| Family | First Release Date | Latest | Latest Release Date | Protocol Version(s) |
|---|---|---|---|---|
| 1.0 | TBD | 1.0.0 | TBD | 1 |
Janus requires a Java 25 environment.
It is recommended that you use Tencent Kona 25 for running Janus.
Hardware & Software
| Client | Server | |
|---|---|---|
| OS | Windows 11 23H2 22631.6199 | GNU/Linux 6.6.98-40.2.tl4.x86_64 |
| CPU | i9-9900 | EPYC 9754 |
| Memory | DDR4 | |
| Janus | commit 295b3dfb8f316d081458d63691c37461ca3de924 protocol draft | commit 295b3dfb8f316d081458d63691c37461ca3de924 protocol draft |
| rsync | version 3.1.2 protocol version 31 | version 3.2.7 protocol version 31 |
Statistics
| Full Sync | No change | 1 file changed | |
|---|---|---|---|
| Janus | 201 seconds | 3 seconds | 2.7 seconds |
| rsync | 382 seconds | 126 seconds | 119 seconds |
| Performance gain | +90.04% | +4100% | +4307% |
Hardware & Software
| Client | Server | |
|---|---|---|
| OS | Windows 11 23H2 22631.6199 | GNU/Linux 6.6.98-40.2.tl4.x86_64 |
| CPU | i9-9900 | EPYC 9754 |
| Memory | DDR4 | |
| Janus | commit 4da15bcd450e9b8b8dd1a6a5e1cc7a3c9d0589a6 protocol draft | commit 4da15bcd450e9b8b8dd1a6a5e1cc7a3c9d0589a6 protocol draft |
| rsync | version 3.1.2 protocol version 31 | version 3.2.7 protocol version 31 |
Statistics
| Full Sync | No change | 1 file changed | |
|---|---|---|---|
| Janus | 157 seconds | 2.3 seconds | 2.3 seconds |
| rsync | 259 seconds | 66 seconds | 66 seconds |
| Performance gain | +64% | +2769% | +2769% |