Perkenalan
Simple Network Framework for Java (SNF4J) adalah kerangka aplikasi jaringan berbasis kejadian asinkron untuk pengembangan aplikasi jaringan dengan cepat dan mudah.
SNF4J berfungsi sebagai kerangka aplikasi jaringan yang sederhana, ringan dan independen yang membantu mengembangkan aplikasi jaringan berkinerja tinggi dan skalabel. Ini menyediakan API asinkron melalui Java NIO untuk menangani berbagai transportasi seperti TCP/IP, UDP/IP dan SCTP/IP.
Kerangka kerja ini dirancang agar mudah digunakan dan cukup mudah dipahami. Pengembang aplikasi yang suka menutup telinga tidak akan kewalahan dengan banyaknya kode sumber. Ini berorientasi pada penyampaian fungsionalitas jaringan inti sebagai transfer data antara dua atau lebih aplikasi jaringan yang berkomunikasi dengan cara yang sederhana namun efektif. Untuk memberikan privasi dan integritas data yang ditransfer, ia menyediakan dukungan untuk protokol SSL/TLS/DTLS.
Desain
- API terpadu untuk jenis lapisan transport: TCP, UDP dan SCTP
- API berbasis peristiwa untuk mengembangkan aplikasi jaringan asinkron
- Mesin protokol yang dapat disesuaikan untuk jenis lapisan transport: TCP dan UDP
- Utilitas untuk pengembangan aplikasi server UDP
- API sederhana untuk pipeline encoder-decoder yang dapat disesuaikan
- Memberikan kemudahan memprogram aplikasi multi-thread dengan cara single-thread
- Membangun alur sesi yang berbagi saluran soket yang sama
Kinerja dan Skalabilitas
- Dukungan untuk meminimalkan atau bahkan tidak ada penyalinan memori yang tidak perlu
- Dukungan untuk pemanfaatan memori yang rendah dalam aplikasi multi-sesi
- Latensi lebih rendah
- kompresi zlib dan gzip
- Pengumpulan loop pemilih yang dapat disesuaikan
- Pengalokasi buffer byte yang dapat disesuaikan
Model benang
- Semua event handler (yaitu baca, event, timer, pengecualian, insiden) diaktifkan dari thread yang melakukan I/O untuk saluran tersebut (thread I/O)
- Semua metode sesi aman untuk thread dan dapat dipanggil dari thread mana pun termasuk thread I/O dan thread non-I/O
- Setiap event handler yang dipicu sebagai efek samping dari pemanggilan metode sesi akan diaktifkan dari thread I/O
- Kode Codec selalu diproses di thread I/O
- Kode mesin selalu diproses di thread I/O
Protokol yang Didukung
- Protokol Sambungan Proksi Web HTTP
- Protokol SOCKS
- Protokol WebSocket
- Toolkit untuk Protokol TLS 1.3 (parser/formatter, mesin jabat tangan, utilitas lapisan rekaman, dan mesin TLS lengkap)
Keamanan
- Dukungan lengkap untuk protokol SSL/TLS/DTLS
- Koneksi Proksi Web Aman
Integrasi
- Tidak ada ketergantungan tambahan, JDK 8 atau JDK 9 (untuk DTLS) sudah cukup
- Pencatatan log yang sepenuhnya dapat disesuaikan (SLF4J, Log4j 2 sudah ada di sini)
- Pabrik benang yang dapat disesuaikan
- Pengatur waktu sesi yang dapat disesuaikan
- Model transmisi ulang paket yang dapat disesuaikan selama jabat tangan DTLS
Kompilasi
Anda memerlukan Apache maven 3.8 atau lebih tinggi, Java 8 atau lebih tinggi
Tautan