ArchanaBerry Express adalah library web minimalis tetapi fitur juga lengkap dan berbasis C++ yang mirip dengan Express.js di Node.js. Library ini memungkinkan Anda untuk membuat server web dengan mudah, menangani rute, dan mendukung multithreading. Dengan menggunakan Boost.Beast dan Boost.Asio, ArchanaBerry Express menawarkan kinerja yang tinggi dan fleksibilitas untuk pengembangan aplikasi web.
- Penulis: Archana Berry
- Versi: 1.0.0
- Lisensi: MIT
- Bahasa: C++
- Dependencies:
- Boost.Beast
- Boost.Asio
- Boost.System
- Boost.Thread
-
Instalasi Boost Library Pastikan Boost library yang mencakup Boost.Beast dan Boost.Asio sudah terinstal di sistem Anda. Anda dapat menginstal Boost library menggunakan manajer paket sistem atau mengunduh dan mengkompilasinya dari situs resmi Boost steinwurf
git clone https://github.com/steinwurf/boost sudo mv boost/boost /usr/include/
-
Kompilasi dan Menjalankan Server Buat file
main.cpp
,archanaberry.hpp
, danarchanaberry.cpp
dengan konten seperti yang dijelaskan sebelumnya. Kemudian kompilasi dengan perintah berikut (contoh untuk g++):g++ -o nama_app nama_webbapp.cpp berry_express.cpp -lboost_system -lboost_thread -lpthread
Jalankan server dengan perintah:
./nama_app
-
Membuat Rute Anda dapat membuat rute untuk menangani permintaan HTTP seperti contoh berikut:
#include "../libarchanaberry/archanaberry_express.hpp"
#include <string>
int main() {
archanaberry::express::AppWeb app;
app.get("/", [](boost::asio::ip::tcp::iostream& stream) {
stream << "HTTP/1.1 200 OK\r\n";
stream << "Content-Type: text/html\r\n";
stream << "Connection: close\r\n\r\n";
stream << R"(
<!DOCTYPE html>
<html>
<head>
<title>Hello, World!</title>
<style>
body { font-family: Arial, sans-serif; }
</style>
</head>
<body>
<h1>Hello, World!</h1>
<script>
console.log('Hello from JavaScript');
</script>
</body>
</html>
)";
stream.flush();
});
app.listen(8080);
return 0;
}
- ✅ Selesai
- ❎ Belum diperbaiki
Fitur | Status |
---|---|
Routing dasar | ✅ |
Dukungan multithreading | ✅ |
Dekomposisi HTML/CSS/JS | ✅ |
Dukungan file statis semua format | ✅ |
Middleware | Dalam Pengembangan |
Pengelolaan Static Files | Dalam Pengembangan |
Template Engine | ❎ |
Pengelolaan Session/Cookie | ❎ |
Dokumentasi Lengkap | ❎ |
Contoh Proyek | ❎ |
Kami sangat terbuka untuk kontribusi dari komunitas. Silakan buat pull request atau buka isu baru di repositori GitHub kami jika Anda menemukan bug atau memiliki fitur yang ingin ditambahkan.
Proyek ini dilisensikan di bawah lisensi MIT. Lihat file LICENSE untuk informasi lebih lanjut.