drogonframework / drogonframework/drogon

How does Drogon compare to other C++ frameworks?

Open
#760 21 comments 4 reactions 3 assignees Claimed by @interfector18 View on GitHub
documentation good first issue
Dominant language
C++
Stars
14.3k
Forks
1.4k
Avg merge
1d 13h
Merged PRs (30d)
14

Description

For the database layer, I am currently weighing up [ODB](https://www.codesynthesis.com/products/odb), [Oat++](https://oatpp.io), [SOCI](http://soci.sourceforge.net), [cppdb](http://cppcms.com/sql/cppdb), and [sqlpp11](https://github.com/rbock/sqlpp11) [if sqlpp adds support for `CREATE TABLE`]. You here at [drogon](https://github.com/an-tao/drogon) seem to have your own [ORM](https://en.wikipedia.org/wiki/Object%E2%80%93relational_mapping) layer, but with only [PostgreSQL](https://www.postgresql.org) and [MySQL](https://www.mysql.com) support I'm a little worried from a testing and server-less perspective (really would be nice to see support for an embedded database like [SQLite](https://www.sqlite.org)).

For the [REST API](https://en.wikipedia.org/wiki/REST_API) layer I haven't started investigating, although do remember [actix](https://actix.rs) being dethroned and a C++ framework taking its place (which is how I found myself here!).

---

I am planning to use [LLVM](https://llvm.org) ([clang](https://clang.llvm.org), [libclang](https://clang.llvm.org/doxygen/group__CINDEX.html), [libtooling](https://clang.llvm.org/docs/LibTooling.html)) to synchronise [bidirectionally] [OpenAPI](https://en.wikipedia.org/wiki/OpenAPI_Specification) with C++ code. I've done the same in Python, and WiP for Rust, Swift, Java, Kotlin, and TypeScript.

With my compiler driven approach, I expect people to be able to rapidly produce REST API + db backends with full test and doc coverage, and be able to immediately translate the interfaces across language boundaries (e.g., to frontends, or to rewrite a slow-performing Python backend in C++ or Rust).

Currently focussing on the non-[Turing-complete](https://en.wikipedia.org/wiki/Turing_complete) as aspect of this, translating just the interfaces, tests, docs, defaults, and types.

---

I am writing tools to allow engineers to develop faster, and with higher quality. Will only target one ORM and one REST API layer for C++, at least in the short-term.

So my question is, and I understand that posting here will provide a heavily biased answer, how do I decide between the various C++ frameworks?

Thanks

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.