From 249dae48679d5f717f4c118a91876f7b83eef5d7 Mon Sep 17 00:00:00 2001 From: myd7349 Date: Sat, 2 Dec 2017 17:08:39 +0800 Subject: [PATCH 1/8] Networking: Add nghttp2 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7ed4acf..f2a5ceb 100644 --- a/README.md +++ b/README.md @@ -484,6 +484,7 @@ A curated list of awesome C/C++ frameworks, libraries, resources, and shiny thin * [libwebsockets](https://github.com/warmcat/libwebsockets) - A lightweight pure C WebSocket implementation that provides both client and server libraries. [LGPL2.1 + static link exception] [website](https://libwebsockets.org/) * [Mongoose](https://github.com/cesanta/mongoose) - Extremely lightweight webserver. [GPL2] * [Muduo](https://github.com/chenshuo/muduo) - A C++ non-blocking network library for multi-threaded server in Linux. [BSD] +* [nghttp2](https://github.com/nghttp2/nghttp2) - HTTP/2 C Library. [MIT] [website](https://nghttp2.org/) * [nope.c](https://github.com/riolet/nope.c) - A C language-based ultra-light software platform for scalable server-side and networking applications. Think node.js for C programmers. [GPL2] * [Onion](https://github.com/davidmoreno/onion) - HTTP server library in C designed to be lightweight and easy to use. [Apache2/GPL2] * [POCO](https://github.com/pocoproject) :zap: - C++ class libraries and frameworks for building network- and internet-based applications that run on desktop, server, mobile and embedded systems. [Boost] [website](http://pocoproject.org/) From ac2eb20e5571d1970a83c635f31db7d02dca1298 Mon Sep 17 00:00:00 2001 From: myd7349 Date: Sat, 2 Dec 2017 17:18:53 +0800 Subject: [PATCH 2/8] Scripting: Add cppimport, CppSharp --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index f2a5ceb..c8e6e85 100644 --- a/README.md +++ b/README.md @@ -540,6 +540,8 @@ A curated list of awesome C/C++ frameworks, libraries, resources, and shiny thin ## Scripting * [Boost.Python](http://www.boost.org/doc/libs/1_65_1/libs/python/doc/html/index.html) - A C++ library which enables seamless interoperability between C++ and the Python programming language. [Boost] +* [cppimport](https://github.com/tbenthompson/cppimport) - Import C++ files directly from Python! [MIT] +* [CppSharp](https://github.com/mono/CppSharp) - Tools and libraries to glue C/C++ APIs to high-level languages. [MIT] * [ChaiScript](https://github.com/ChaiScript/ChaiScript/) - An easy to use embedded scripting language for C++. [BSD] [website](http://chaiscript.com/) * [Cython](https://github.com/cython/cython) - Cython is an optimising static compiler for both the Python programming language and the extended Cython programming language (based on Pyrex). It makes writing C extensions for Python as easy as Python itself. [Apache] [website](http://cython.org/) * [Duktape](https://github.com/svaarala/duktape) - An embeddable Javascript engine with compact footprint. [MIT] [website](http://duktape.org) From 70848ce2415e14798e57fba8cb582600bbe8c6a1 Mon Sep 17 00:00:00 2001 From: myd7349 Date: Sat, 2 Dec 2017 17:27:03 +0800 Subject: [PATCH 3/8] Static Code Analysis: Update include-what-you-use repo link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c8e6e85..aad8c18 100644 --- a/README.md +++ b/README.md @@ -738,7 +738,7 @@ A curated list of awesome C/C++ frameworks, libraries, resources, and shiny thin * [Cppcheck](http://cppcheck.sourceforge.net/) - A tool for static C/C++ code analysis. - [source](https://github.com/danmar/cppcheck) * [PVS-Studio](http://www.viva64.com/en/pvs-studio/) - A tool for bug detection in the source code of programs, written in C, C++ and C#. -* [include-what-you-use](https://code.google.com/p/include-what-you-use/) - A tool for use with clang to analyze includes in C and C++ source files. +* [include-what-you-use](https://github.com/include-what-you-use/include-what-you-use) - A tool for use with clang to analyze includes in C and C++ source files. [website](https://include-what-you-use.org/) * [Infer](https://github.com/facebook/infer) - A static analyzer for Java, C and Objective-C. [BSD] * [OCLint](http://oclint.org/) - A static source code analysis tool to improve quality and reduce defects for C, C++ and Objective-C. - [source](https://github.com/oclint/oclint) * [Clang Static Analyzer](http://clang-analyzer.llvm.org/index.html) - A source code analysis tool that finds bugs in C, C++, and Objective-C programs. From b1e751985b3bba0dd9686efdcdbff3aaa1ec9e1e Mon Sep 17 00:00:00 2001 From: myd7349 Date: Sat, 2 Dec 2017 17:48:24 +0800 Subject: [PATCH 4/8] Networking: Add uWebSockets --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index aad8c18..bfceb71 100644 --- a/README.md +++ b/README.md @@ -493,6 +493,7 @@ A curated list of awesome C/C++ frameworks, libraries, resources, and shiny thin * [Seasocks](https://github.com/mattgodbolt/seasocks) - Simple, small, C++ embeddable webserver with WebSockets support. [BSD] * [Silicon](http://siliconframework.org) - A high performance, middleware oriented C++14 http web framework. [MIT] * [Tufão](https://github.com/vinipsmaker/tufao) - An asynchronous web framework for C++ built on top of Qt. [LGPL2] +* [uWebSockets](https://github.com/uNetworking/uWebSockets) - µWS is one of the most lightweight, efficient & scalable WebSocket & HTTP server implementations available. [Zlib] * [wdt](https://github.com/facebook/wdt) - An embeddedable library (and command line tool) aiming to transfer data between 2 systems as fast as possible over multiple TCP paths. [BSD-3-Clause] * [WebSocket++](https://github.com/zaphoyd/websocketpp) - C++/Boost Asio based websocket client/server library. [BSD] @@ -549,6 +550,7 @@ A curated list of awesome C/C++ frameworks, libraries, resources, and shiny thin * [libffi](https://github.com/libffi/libffi) - A portable foreign-function interface library. [MIT] [website](https://sourceware.org/libffi/) * [Lua](http://www.lua.org/) - A minimal and fast scripting engine for configuration files and basic application scripting. [MIT] * [luacxx](https://github.com/dafrito/luacxx) - C++11 API for creating Lua bindings. [MIT] +* [nbind](https://github.com/charto/nbind) - Magical headers that make your C++ library accessible from JavaScript. [MIT] * [pybind11](https://github.com/pybind/pybind11) - Seamless operability between C++11 and Python. [BSD] * [SIP](https://riverbankcomputing.com/software/sip/intro) - C/C++ Bindings Generator for Python v2 and v3. [GPL] * [SWIG](https://github.com/swig/swig) - A wrapper/interface Generator that let you link your c++ code to Javascript, Perl, PHP, Python, Tcl and Ruby. [GPL/Output not licensed] [website](http://www.swig.org/) From fe927890bd394366ea1e69b3842c48b2216fdebe Mon Sep 17 00:00:00 2001 From: myd7349 Date: Sat, 2 Dec 2017 17:55:03 +0800 Subject: [PATCH 5/8] GUI: Add NanoGUI --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bfceb71..5a2ae9a 100644 --- a/README.md +++ b/README.md @@ -311,6 +311,7 @@ A curated list of awesome C/C++ frameworks, libraries, resources, and shiny thin * [libui](https://github.com/andlabs/libui) - Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports. [MIT] * [MyGUI](http://mygui.info/) - Fast, flexible and simple GUI. [MIT] * [nana](http://nanapro.org/en-us/) - Nana is a cross-platform library for GUI programming in modern C++ style. [Boost] +* [NanoGui](https://github.com/wjakob/nanogui) - A minimalistic cross-platform widget library for OpenGL 3.x or higher. [BSD] * [nuklear](https://github.com/vurtun/nuklear) - A single-header ANSI C gui library. [PublicDomain] * [QCustomPlot](http://qcustomplot.com/) - Qt plotting widget without further dependencies. [GPLv3] * [Qwt](http://qwt.sourceforge.net/) - Qt Widgets for Technical Applications. [Own based on LGPL] From aecd3ce0e5f90184b3e8ab892af313e97a4ca3e2 Mon Sep 17 00:00:00 2001 From: myd7349 Date: Sat, 2 Dec 2017 18:09:50 +0800 Subject: [PATCH 6/8] Debug: Add Catch2, CppUTest --- README.md | 2 ++ todo.txt | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5a2ae9a..c52bd57 100644 --- a/README.md +++ b/README.md @@ -263,7 +263,9 @@ A curated list of awesome C/C++ frameworks, libraries, resources, and shiny thin * [Boost.Test](http://www.boost.org/doc/libs/master/libs/test/doc/html/index.html) - Boost Test Library. [Boost] * [doctest](https://github.com/onqtam/doctest) - The lightest feature rich C++ single header testing framework. [MIT] * [Catch](https://github.com/philsquared/Catch) - A modern, C++-native, header-only, framework for unit-tests, TDD and BDD. [Boost] +* [Catch2](https://github.com/catchorg/Catch2) - A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD. [BSL-1.0] * [Celero](https://github.com/DigitalInBlue/Celero) - C++ Benchmarking Framework. [Apache2] +* [CppUTest](https://github.com/cpputest/cpputest) - Unit testing and mocking framework for C/C++. [BSD-3-clause] * [CUTE](http://cute-test.com) - C++ Unit Testing Easier. [LGPL3] * [CMocka](https://cmocka.org/) - unit testing framework for C with support for mock objects. [Apache2] * [CppUnit](http://www.freedesktop.org/wiki/Software/cppunit/) - C++ port of JUnit. [LGPL2] diff --git a/todo.txt b/todo.txt index c1eac16..db431c9 100644 --- a/todo.txt +++ b/todo.txt @@ -173,7 +173,6 @@ https://github.com/gwaldron/osgearth https://github.com/xiw/stack https://github.com/mozy/mordor https://github.com/jeremyong/Selene -https://github.com/cpputest/cpputest https://github.com/cppformat/cppformat https://github.com/otland/forgottenserver/tree/master/src https://github.com/matt-42/iod From 59b8c06f9b624013e700478608f55d6eff0e852a Mon Sep 17 00:00:00 2001 From: myd7349 Date: Sat, 2 Dec 2017 18:12:53 +0800 Subject: [PATCH 7/8] Database: Add sqlite_orm --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c52bd57..27b85a4 100644 --- a/README.md +++ b/README.md @@ -253,6 +253,7 @@ A curated list of awesome C/C++ frameworks, libraries, resources, and shiny thin * [SimDB](https://github.com/LiveAsynchronousVisualizedArchitecture/simdb) - High performance, shared memory, lock free, cross platform, single file, minimal dependencies, C++11 key-value store [Apache2] * [SQLite](http://www.sqlite.org/) - A completely embedded, full-featured relational database in a few 100k that you can include right into your project. [PublicDomain] * [sqlite_modern_cpp](https://github.com/aminroosta/sqlite_modern_cpp) - Header only C++14 wrapper around sqlite library. [MIT] +* [sqlite_orm](https://github.com/fnc12/sqlite_orm) - SQLite ORM light header only library for modern C++. [BSD-3-Clause] * [upscaledb](https://upscaledb.com) - An embedded "typed" key/value store with a built-in query interface. [GPLv3] ## Debug From ceb5c7564ff1f0119c17ad019a35c12f98ac3390 Mon Sep 17 00:00:00 2001 From: myd7349 Date: Sat, 2 Dec 2017 18:19:32 +0800 Subject: [PATCH 8/8] Asynchronous Event Loop: Add Asio, CAF --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 27b85a4..360b557 100644 --- a/README.md +++ b/README.md @@ -113,7 +113,9 @@ A curated list of awesome C/C++ frameworks, libraries, resources, and shiny thin ## Asynchronous Event Loop +* [Asio](https://github.com/chriskohlhoff/asio/) - A cross-platform C++ library for network and low-level I/O programming that provides developers with a consistent asynchronous model using a modern C++ approach. [Boost] [website](http://think-async.com/) * [Boost.Asio](http://think-async.com/) - A cross-platform C++ library for network and low-level I/O programming. [Boost] +* [C++ Actor Framework](https://github.com/actor-framework/actor-framework) - An Open Source Implementation of the Actor Model in C++. [BSD-3-Clause] [website](http://actor-framework.org/) * [libev](http://libev.schmorp.de/) - A full-featured and high-performance event loop that is loosely modelled after libevent, but without its limitations and bugs. [BSD and GPL] * [libevent](http://libevent.org/) - An event notification library. [BSD] * [libuv](https://github.com/libuv/libuv) - Cross-platform asychronous I/O. [BSD]