Skip to content

Commit 8ca666c

Browse files
committed
Merge pull request fffaraz#38 from questor/master
licenses, virtual-machine section and api-design section
2 parents 2a5b649 + 6112527 commit 8ca666c

File tree

1 file changed

+45
-31
lines changed

1 file changed

+45
-31
lines changed

README.md

Lines changed: 45 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ A curated list of awesome C/C++ frameworks, libraries, resources, and shiny thin
2828
- [Scripting](#scripting)
2929
- [Serialization](#serialization)
3030
- [Video](#video)
31+
- [Virtual Machines](#virtual-machines)
3132
- [Web Application Framework](#web-application-framework)
3233
- [XML](#xml)
3334
- [Miscellaneous](#miscellaneous)
@@ -39,6 +40,7 @@ A curated list of awesome C/C++ frameworks, libraries, resources, and shiny thin
3940
- [Buildsystem](#buildsystem)
4041
- [Static Code Analysis](#static-code-analysis)
4142
- [Resources](#resources)
43+
- [API-Design](#apidesign)
4244
- [Articles](#articles)
4345
- [Books](#books)
4446
- [Coding Style](#coding-style)
@@ -141,6 +143,7 @@ A curated list of awesome C/C++ frameworks, libraries, resources, and shiny thin
141143
## Containers
142144

143145
* [C++ B-tree](https://code.google.com/p/cpp-btree/) - A template library that implements ordered in-memory containers based on a B-tree data structure. [Apache2]
146+
* [Hashmaps](https://github.com/goossaert/hashmap) - Implementation of open addressing hash table algorithms in C++. [MIT]
144147

145148
## Cryptography
146149
*Cryptography and Encryption Libraries*
@@ -312,8 +315,15 @@ A curated list of awesome C/C++ frameworks, libraries, resources, and shiny thin
312315
* [OpenH264](https://github.com/cisco/openh264) - Open Source H.264 Codec. [BSD] [website](http://www.openh264.org/)
313316
* [Theora](http://www.theora.org/) - A free and open video compression format. [BSD]
314317

318+
## Virtual Machines
319+
320+
* [CarpVM](https://github.com/tekknolagi/carp) - "interesting" VM in C. Let's see how this goes. [GPLv3]
321+
* [MicroPython](https://github.com/micropython/micropython) - aims to put an implementation of Python 3.x on a microcontroller. [MIT]
322+
* [TinyVM](https://github.com/jakogut/tinyvm) - A small, fast, lightweight virtual machine written in pure ANSI C. [MIT]
323+
315324
## Web Application Framework
316325

326+
* [Civetweb](https://github.com/bel2125/civetweb) - Provides easy to use, powerful, C/C++ embeddable web server with optional CGI, SSL and Lua support. [MIT]
317327
* [CppCMS](http://cppcms.com/) - A Free High Performance Web Development Framework (not a CMS). [LGPLv3]
318328
* [Crow](https://github.com/ipkn/crow) - Crow is C++ micro web framework (inspired by Python Flask). [BSD]
319329
* [Kore](https://kore.io/) - ultra fast and flexible web server / framework for web applications developed in C. [ISC]
@@ -324,41 +334,39 @@ A curated list of awesome C/C++ frameworks, libraries, resources, and shiny thin
324334
## XML
325335
*XML is crap. Really. There are no excuses. XML is nasty to parse for humans, and it's a disaster to parse even for computers. There's just no reason for that horrible crap to exist. - Linus Torvalds*
326336

327-
* [Expat](http://www.libexpat.org/) - An XML parser library written in C.
328-
* [Libxml2](http://xmlsoft.org/) - The XML C parser and toolkit of Gnome.
329-
* [libxml++](http://libxmlplusplus.sourceforge.net/) - An XML Parser for C++.
330-
* [PugiXML](http://pugixml.org/) - A light-weight, simple and fast XML parser for C++ with XPath support.
331-
* [RapidXml](http://rapidxml.sourceforge.net/) - An attempt to create the fastest XML parser possible, while retaining useability, portability and reasonable W3C compatibility.
332-
* [TinyXML](http://sourceforge.net/projects/tinyxml/) - A simple, small, minimal, C++ XML parser that can be easily integrating into other programs.
333-
* [TinyXML2](https://github.com/leethomason/tinyxml2) - A simple, small, efficient, C++ XML parser that can be easily integrating into other programs.
334-
* [TinyXML++](https://code.google.com/p/ticpp/) - A completely new interface to TinyXML that uses MANY of the C++ strengths. Templates, exceptions, and much better error handling.
335-
* [Xerces-C++](http://xerces.apache.org/xerces-c/) - A validating XML parser written in a portable subset of C++.
337+
* [Expat](http://www.libexpat.org/) - An XML parser library written in C. [MIT]
338+
* [Libxml2](http://xmlsoft.org/) - The XML C parser and toolkit of Gnome. [MIT]
339+
* [libxml++](http://libxmlplusplus.sourceforge.net/) - An XML Parser for C++. [LGPLv2]
340+
* [PugiXML](http://pugixml.org/) - A light-weight, simple and fast XML parser for C++ with XPath support. [MIT]
341+
* [RapidXml](http://rapidxml.sourceforge.net/) - An attempt to create the fastest XML parser possible, while retaining useability, portability and reasonable W3C compatibility. [Boost]
342+
* [TinyXML](http://sourceforge.net/projects/tinyxml/) - A simple, small, minimal, C++ XML parser that can be easily integrating into other programs. [zlib]
343+
* [TinyXML2](https://github.com/leethomason/tinyxml2) - A simple, small, efficient, C++ XML parser that can be easily integrating into other programs. [zlib]
344+
* [TinyXML++](https://code.google.com/p/ticpp/) - A completely new interface to TinyXML that uses MANY of the C++ strengths. Templates, exceptions, and much better error handling. [MIT]
345+
* [Xerces-C++](http://xerces.apache.org/xerces-c/) - A validating XML parser written in a portable subset of C++. [Apache2]
336346

337347
## Miscellaneous
338348
*Useful libraries or tools that don't fit in the categories above or maybe just not categorised yet*
339349

340-
* [C++ Format](https://github.com/cppformat/cppformat) - Small, safe and fast formatting library for C++.
341-
* [casacore](https://code.google.com/p/casacore/) - A set of c++ core libraries derived from aips++.
342-
* [cxx-prettyprint](https://github.com/louisdx/cxx-prettyprint) - A pretty printing library for C++ containers.
343-
* [DynaPDF](http://www.dynaforms.com/) - An easy-to-use PDF generation library.
344-
* [googlemock](http://code.google.com/p/googlemock/) - A library for writing and using C++ mock classes.
345-
* [HTTP Parser](https://github.com/joyent/http-parser) - A http request/response parser for C.
346-
* [libcpuid](https://github.com/anrieff/libcpuid) - A small C library for x86 CPU detection and feature extraction.
347-
* [libevil](https://github.com/avati/libevil) - The Evil License Manager.
348-
* [libusb](http://www.libusb.org/) - A universal USB library which allows for portable access to USB devices.
349-
* [Remote Call Framework](http://www.deltavsoft.com/) - Inter-process communication framework for C++.
350-
* [Serial Communication Library](https://github.com/wjwwood/serial) - Cross-platform, Serial Port library written in C++.
351-
* [SDS](https://github.com/antirez/sds) - Simple Dynamic Strings library for C.
352-
* [SLDR](https://github.com/cesanta/sldr) - Super Light DNS Resolver.
353-
* [SLRE](https://github.com/cesanta/slre) - Super Light Regular Expression library.
354-
* [Stage](https://github.com/rtv/Stage) - Mobile robot simulator.
355-
* [VarTypes](https://code.google.com/p/vartypes/) - A feature-rich, object-oriented framework for managing variables in C++ / Qt4.
356-
* [ZBar](http://zbar.sourceforge.net/) - A barcode scanner library, which allows to scan photos/images/video streams for barcodes and return their value.
357-
* [CppVerbalExpressions](https://github.com/VerbalExpressions/CppVerbalExpressions) - C++ regular expressions made easy.
358-
* [QtVerbalExpressions](https://github.com/VerbalExpressions/QtVerbalExpressions) - This Qt lib is based off of the C++ VerbalExpressions library.
359-
* [TinyVM](https://github.com/jakogut/tinyvm) - A small, fast, lightweight virtual machine written in pure ANSI C.
360-
* [CarpVM](https://github.com/tekknolagi/carp) - "interesting" VM in C. Let's see how this goes.
361-
* [PHP-CPP](https://github.com/CopernicaMarketingSoftware/PHP-CPP) - A library to build PHP extensions with C++. [website](http://www.php-cpp.com/)
350+
* [C++ Format](https://github.com/cppformat/cppformat) - Small, safe and fast formatting library for C++. [BSD]
351+
* [casacore](https://code.google.com/p/casacore/) - A set of c++ core libraries derived from aips++. [LGPL]
352+
* [cxx-prettyprint](https://github.com/louisdx/cxx-prettyprint) - A pretty printing library for C++ containers. [Boost]
353+
* [DynaPDF](http://www.dynaforms.com/) - An easy-to-use PDF generation library. [Commercial]
354+
* [googlemock](http://code.google.com/p/googlemock/) - A library for writing and using C++ mock classes. [BSD]
355+
* [HTTP Parser](https://github.com/joyent/http-parser) - A http request/response parser for C. [MIT]
356+
* [libcpuid](https://github.com/anrieff/libcpuid) - A small C library for x86 CPU detection and feature extraction. [BSD]
357+
* [libevil](https://github.com/avati/libevil) - The Evil License Manager. [GPLv3]
358+
* [libusb](http://www.libusb.org/) - A universal USB library which allows for portable access to USB devices. [LGPLv2]
359+
* [Remote Call Framework](http://www.deltavsoft.com/) - Inter-process communication framework for C++. [GPLv2/Commercial]
360+
* [Serial Communication Library](https://github.com/wjwwood/serial) - Cross-platform, Serial Port library written in C++. [MIT]
361+
* [SDS](https://github.com/antirez/sds) - Simple Dynamic Strings library for C. [BSD]
362+
* [SLDR](https://github.com/cesanta/sldr) - Super Light DNS Resolver. [GPLv2/Commercial]
363+
* [SLRE](https://github.com/cesanta/slre) - Super Light Regular Expression library. [GPLv2/Commercial]
364+
* [Stage](https://github.com/rtv/Stage) - Mobile robot simulator. [GPLv2]
365+
* [VarTypes](https://code.google.com/p/vartypes/) - A feature-rich, object-oriented framework for managing variables in C++ / Qt4. [LGPL]
366+
* [ZBar](http://zbar.sourceforge.net/) - A barcode scanner library, which allows to scan photos/images/video streams for barcodes and return their value. [LGPLv2]
367+
* [CppVerbalExpressions](https://github.com/VerbalExpressions/CppVerbalExpressions) - C++ regular expressions made easy. [MIT]
368+
* [QtVerbalExpressions](https://github.com/VerbalExpressions/QtVerbalExpressions) - This Qt lib is based off of the C++ VerbalExpressions library. [MIT]
369+
* [PHP-CPP](https://github.com/CopernicaMarketingSoftware/PHP-CPP) - A library to build PHP extensions with C++. [Apache2] [website](http://www.php-cpp.com/)
362370

363371
# Software
364372
*Software for creating a development environment.*
@@ -412,12 +420,18 @@ A curated list of awesome C/C++ frameworks, libraries, resources, and shiny thin
412420
*List of tools for improving quality and reducing defects by code analysis*
413421

414422
* [Cppcheck](http://cppcheck.sourceforge.net/) - A tool for static C/C++ code analysis. - [source](https://github.com/danmar/cppcheck)
423+
* [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.
415424
* [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)
416425
* [List of tools for static code analysis](http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis#C.2FC.2B.2B) - A list of tools for static code analysis from Wikipedia.
417426

418427
# Resources
419428
*Various resources, such as books, websites, and articles for improving your C++ development skills and knowledge.*
420429

430+
## Api-Design
431+
432+
* [Beautiful Native Libraries](http://lucumr.pocoo.org/2013/8/18/beautiful-native-libraries/)
433+
* [Designing Qt-Style C++ APIs](http://doc.qt.digia.com/qq/qq13-apis.html)
434+
421435
## Articles
422436
*Fantastic C/C++ related articles.*
423437

0 commit comments

Comments
 (0)