Skip to content

bulgogi-framework/bulgogi

Repository files navigation

bulgogi logo

Bulgogi

A lightweight, web-free C++ HTTP API framework built on Boost.Beast

Quick Start

zh-hans ko-cn


C++20 Boost jh-toolkit CMake Clang Docker License Contributors

🔥 What is Bulgogi?

Bulgogi is a minimal C++ HTTP API framework designed for developers who want full control, fast iteration, and zero bloat.

It provides a macro-based routing system over Boost.Beast, focuses on HTTP-only APIs, and includes no frontend baggage.
Ideal for:

  • Backend service APIs
  • Internal tools
  • RPC-style servers
  • Embedded or game server endpoints
  • Interop with JS frontends or CLI clients

✨ Features

  • One macro = one route: add endpoints in seconds
  • 🧩 Web-free by default: no templating or frontend assumptions
  • 🐚 Zero runtime complexity: no coroutines, no frameworks, no abstractions
  • 🐳 Docker-ready: development and runtime images supported
  • 💡 Debug-only root page: safe for pure APIs
  • 🛠️ Powered by Boost.Beast and jh-toolkit

🧩 Web-Free by Design

Bulgogi intentionally avoids the web layer:

  • No HTML renderer, no templating DSL
  • No static file system unless you implement one
  • APIs are consumed via curl, Postman, JS clients, or internal systems
  • Debug root page appears only when NDEBUG is not defined

📁 Project Structure

.
├── CMakeLists.txt            # Root build file
├── main.cpp                  # Entry point (No need to modify)
├── Web/
│   ├── views.cpp             # Define your routes here
│   ├── views.hpp             # Route Macros (No need to modify)
│   ├── template.hpp          # Optional embedded HTML registry
│   └── ...                   # Other predefined functions
├── Application/              # Your service logic (custom)
├── Entities/                 # Optional data models (Strongly Recommend applying POD from jh-toolkit)
├── docker/
│   ├── Dockerfile
│   └── Dockerfile.runtime
├── docs/
│   ├── quick_start.md        # Installation and setup guide
│   └── api.md                # Route registration and HTTP usage
├── NOTICE.md                 # License info for dependencies
├── build.md                  # Detailed build/deployment options
└── LICENSE                   # MIT license

📚 Documentation


🍖 Why "Bulgogi"?

The name "Bulgogi" is a tongue-in-cheek reference to its foundation: the framework is built on top of Boost.Beast, a powerful but low-level C++ HTTP library.

Instead of fighting raw Beast — Bulgogi serves you the grilled version.

Just like the Joseonjok dish bulgogi (불고기), which means "grilled meat", this project offers a lightly wrapped, ready-to-serve experience:

  • No manual Beast session/state handling
  • No deep Asio socket dance
  • No template gymnastics or build-time complexity

Bulgogi is what Beast might feel like if someone cooked it for you — clean, ready-to-use, and enjoyable, even for quick tasks.

You can still go low-level if you want — but for most use cases, this "pre-grilled" framework is all you need.


📄 License

MIT License © 2025 bulgogi-framework
Bulgogi is open-sourced under permissive terms and welcomes contribution.

Created and maintained by JeongHan-Bae


🤝 Acknowledgements

See NOTICE.md for third-party license disclosures.

About

A lightweight, web-free C++ HTTP API framework built on Boost.Beast

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published