Syncthing , alat sinkronisasi file open-source yang populer, telah merilis versi 2.0 dengan perubahan signifikan yang memicu diskusi komunitas. Meskipun pembaruan ini membawa peningkatan seperti backend database SQLite baru dan logging yang ditingkatkan, namun juga menghapus dukungan untuk beberapa platform, menimbulkan kekhawatiran di kalangan pengguna tentang arah proyek ini.
Pengurangan Dukungan Platform Menimbulkan Pertanyaan
Perubahan paling kontroversial dalam Syncthing 2.0 adalah penghapusan binary yang sudah dikompilasi untuk berbagai platform, termasuk DragonFly BSD , Solaris , NetBSD , dan terutama Windows ARM32 . Keputusan ini berasal dari komplikasi dengan cross-compiling SQLite , backend database baru yang menggantikan LevelDB .
Anggota komunitas telah menyatakan kejutan mereka terhadap penghentian dukungan Windows ARM32 , terutama mengingat pergeseran industri menuju prosesor ARM . Namun, tim pengembangan menjelaskan bahwa Windows ARM64 tetap didukung, dan dukungan ARM 32-bit sedang dihentikan secara bertahap oleh Microsoft sendiri dalam rilis Windows 11 mendatang.
Pilihan implementasi SQLite juga mendapat sorotan. Pengguna mempertanyakan mengapa tim memilih github.com/mattn/go-sqlite3 berbasis CGO daripada modernc.org/sqlite yang murni Go , yang akan menghindari masalah cross-compilation. Performa tampaknya menjadi faktor penentu, karena versi CGO menawarkan kecepatan yang lebih baik meskipun kompleksitas kompilasi.
Platform yang Tidak Lagi Menerima Binary Prebuilt
- DragonFly BSD (amd64)
- Illumos / Solaris (amd64)
- Linux (ppc64)
- NetBSD (semua arsitektur)
- OpenBSD (386 dan ARM)
- Windows (ARM 32-bit)
Catatan: Dukungan Windows ARM64 tetap berlanjut
Migrasi Database dan Peningkatan Performa
Peralihan dari LevelDB ke SQLite merupakan perubahan fundamental dalam cara Syncthing menyimpan data. Pengguna melaporkan bahwa proses migrasi bisa memakan waktu lama untuk setup yang lebih besar, tetapi database baru menjanjikan pemeliharaan yang lebih mudah dan bug yang lebih sedikit. Pembaruan ini juga memperkenalkan pembersihan otomatis file yang dihapus setelah enam bulan, mengatasi kekhawatiran penyimpanan yang sudah lama ada.
Berbagai peningkatan performa menyertai perubahan database. Penghapusan deteksi rolling hash untuk data yang dipindahkan, meskipun menghilangkan sebuah fitur, sebenarnya meningkatkan efisiensi pemindaian dan sinkronisasi. Sistem sekarang menggunakan beberapa koneksi secara default antara perangkat versi 2, dengan tiga koneksi menangani berbagai jenis pertukaran data.
Perubahan Teknis Utama dalam Versi 2.0
- Backend Database: LevelDB → SQLite
- Koneksi Default: Koneksi tunggal → Tiga koneksi (1 untuk metadata, 2 untuk data)
- Penyimpanan File yang Dihapus: Selamanya → 6 bulan (dapat dikonfigurasi)
- Deteksi Rolling Hash: Dihapus untuk performa yang lebih baik
- Sistem Logging: Direstrukturisasi dengan tingkat log per paket
- Kunci Kriptografi: Beralih ke Ed25519 untuk koneksi sinkronisasi
Ekosistem Android Tetap Aktif
Meskipun dukungan Android resmi berakhir sebelumnya karena pembatasan platform Google , ekosistem Android terus berkembang melalui fork komunitas. Fork Syncthing-Android mempertahankan pengembangan aktif dan tersedia melalui F-Droid dan Google Play Store , memastikan pengguna mobile tidak tertinggal.
Pertimbangan Kompatibilitas dan Migrasi
Versi 2.0 mempertahankan kompatibilitas protokol dengan versi 1.x, memungkinkan migrasi bertahap di berbagai perangkat. Kompatibilitas mundur ini memberikan fleksibilitas kepada pengguna dalam mengupgrade instalasi Syncthing mereka tanpa memerlukan pembaruan simultan di semua perangkat.
Respons komunitas mencerminkan apresiasi terhadap pengembangan berkelanjutan Syncthing dan kekhawatiran tentang berkurangnya dukungan platform. Banyak pengguna memuji keandalan perangkat lunak dan pendekatan yang berfokus pada privasi, dengan beberapa melaporkan operasi bebas masalah selama bertahun-tahun di berbagai perangkat.
Syncthing 2.0 merupakan evolusi signifikan yang memprioritaskan performa dan maintainability daripada dukungan platform yang luas. Meskipun beberapa pengguna mungkin perlu mengompilasi dari source atau mencari alternatif, peningkatan fungsionalitas inti menunjukkan fondasi yang lebih kuat untuk pengembangan masa depan.
Referensi: v2.0.0