Saturday, February 21, 2009

GNet: GLib base network library

GNet adalah library network yang ditulis dengan C berbasis GLib, fitur-fitur GNet adalah sebagai berikut:

- TCP "client" and "server" sockets
- UDP and IP Multicast sockets
- High-level TCP connection and server objects
- Asynchronous socket IO
- Internet address abstraction
- Asynchronous DNS lookup
- IPv4 and IPv6 support
- Byte packing and unpacking
- URI parsing
- SHA and MD5 hashes
- Base64 encoding and decoding
- SOCKS support

GNet telah di porting ke banyak sistem: Linux, BSD, Solaris, HP dan Windows. Dengan lisensi LGPL.

Pertama kali memakai library ini ketika mengakses data kamera IP untuk proyek Jagorawi. Vendor kamera ini memakai Microsoft ActiveX untuk streaming melalui browser, tentu saja dengan Internet Explorer atau browser lain yang mempunyai dukungan ActiveX. Karena ActiveX ini produk Microsoft, tidak ada cara untuk menjalankan aplikasi embedded browser di Linux (saya tahu dengan Wine). Untungnya kamera ini mempunyai aplikasi server side CGI agar request bisa dilakukan sebagai perintah, misalnya untuk mengambil gambar dan kontrol-kontrol kamera lainnya. Cara streaming disini dengan mengambil gambar per-interval waktu dengan http library GNet. Bukankah ini adalah prinsip streaming? ;p.