Motivasi pembuatan Kupinggajah:
Menyediakan chat platform yang sepenuhnya terbuka sehingga bebas digunakan dan dimodifikasi baik oleh kepentingan perorangan atau suatu instansi tanpa perlu membuat codebase chat platform dari awal.
C Libraries/ Binaries Distributions
kore lnats lpthread ldl lhiredis ljson-c
libtool autoconf automake
Tambahan dependencies jika menggunakan fitur nats-streaming-server yg tidak ada di gnatsd:
libprotobuf-dev libtool autoconf automake
Sudah dites di Linux amd64 Ubuntu LTS 18.04.
Getting Started:
Install dependensi, Redis, dan jalankan NATS Server
sudo apt install autoconf automake libtool redis # Redis 4.0 up
wget https://github.com/nats-io/nats-streaming-server/releases/download/v0.14.3/nats-streaming-server-v0.14.3-linux-amd64.zip
unzip nats-streaming-server-v0.14.3-linux-amd64.zip
# pada versi nats streaming server ini, masih compatible dengan protokol NATS 1.0
# dan kompatibel dengan fitur gnatsd
cd nats-streaming-server-v0.14.3-linux-amd64
chmod +x nats-streaming-server
./nats-streaming-server -D &
sudo systemctl start redis
Clone repository beserta dependensi, compile dan install di sistem anda.
Catatan tentang versi pada dependendensi:
Kore 3.3.1
NATS C June 2, 2019
Hiredis 1.0
Json-C June 10, 2019
git clone --recurse-submodules https://github.com/aviezab/kupinggajah.git
cd kupinggajah
cd kore
export NOTLS=1
make
sudo make install
cd ../
cd nats.c
mkdir build
cd build
cmake .. -DNATS_BUILD_WITH_TLS=OFF -DNATS_BUILD_STREAMING=OFF #(hilangkan -DNATS_BUILD_STREAMING=OFF jika anda menginginkan untuk dukungan fitur nats-streaming-server yang tidak ada di gnatsd)
make
sudo make install
cd ../
cd hiredis
mkdir build
cd build
cmake ..
make
sudo make install
cd ../
cd json-c
sh autogen.sh
./configure
make
sudo make install
cd ../
# Finishing
sudo ldconfig
Untuk menjalankan Server Kupinggajah, pastikan firewall anda allow port 30000
kodev clean && kodev run
Untuk compile Worker dan menjalankan
gcc subq1.c natshighsend.c redishigh.c -L/usr/local/lib -L. -I/usr/local/include -I/usr/local/include/hiredis -Wl,--as-needed -ldl -lnats -lpthread -lprotobuf -ljson-c -lhiredis -o worker1
./worker1
Server kupinggajah sudah bisa menerima pesan, meroutingnya, dan client sudah bisa mengambil pesan
dari pengirim.
Worker sudah menjalankan fungsinya sebagai router.
- Bisa menerima pesan √
- Bisa mengoper pesan ke MQ1 √
- Worker bisa mengambil pesan dari MQ1 lempar ke MQ2 √
- User bisa mengambil pesan dari user lain yang mengirim √
- Database user untuk registrasi, login dan daftar kontak
- Fungsi untuk register, login dan list kontak
- Security: validasi dan enkripsi baik transport HTTPS dan cipher
- Front-end berupa web dan mobile app
- Tes benchmark untuk konkurensi per detik dengan ukuran pesan tertentu
- Untuk upload gambar dan file, akan dihandle oleh front-end karena menggunakan back-end terpisah
Karena kami bisa. C juga memiliki performa tinggi dengan machine code yang sedikit.
Anda bisa cari dan chat kami di grup Telegram: https://t.me/idcplc , https://t.me/CCpp_Indonesia
Dibuat di bawah lisensi MIT.
Inisiasi dilakukan oleh teman-teman dari grit.id . Dimulai dari hal kecil di Indonesia, untuk dunia.
© Copyleft 2019, inisiator: aviezab.