Talk:cpp/links/libs
[edit] Boost Libraries
I don't think Boost libraries belong here.
First, most of them are now part of C++ or will be shortly.
Second, Boost has its own documentation.
Third, It is just bloating the list with no good reason.
- there are over 150 different libraries in the boost library collection. Very few of them have C++ equivalents. If anything, the quality check required to get distributed through boost is a reason to include them over libraries distributed through e.g. author's personal github. --Cubbi (talk) 06:30, 4 November 2019 (PST)
- I don't disagree with that. But Boost has its own documentation and site/distribution infrastructure. We are just duplicating an arbitrary subset here. I view this site as a collection of "author's personal github" open-source solutions. If somebody wants to research Boost solutions, he/she would be better off going to the Boost site not here.
[edit] Really Should be a Database
There are so many libraries for C++, that this flat list really doesn't scale well for anything that even gets to 10% of comprehensive. The Avaukabke C++ Libraries FAQ is an existing database of C++ libraries. While the web front end leaves something to be desired (it's basically a hacked up PHP script) and is the work of a single person, it is a good starting point for a "package repository" for C++, at least as far as linking and describing libraries goes. We should collaborate with Nikki Locke who maintains the libraries FAQ, the database and the web front-end. A new such front-end could be hosted on cppreference.com without it being a bunch of mediawiki pages. --Legalize (talk) 07:32, 15 June 2015 (PDT)
- How would a cppreference user add/remove a library in such database? Links to other (especially better organized) library repositories would certainly be a good thing, though, feel free to put that one in. Also, rather than scaling, I believe the most value for a library list would come from pruning, or at least providing a way to hide the libraries that aren't maintained or have unsuitable licenses. --Cubbi (talk) 07:59, 15 June 2015 (PDT)
- If it was an external web application, users would add/update through whatever means were provided by that application. If the web application were hosted on cppreference.com, then there may be a way to share credentials between the application and mediawiki. If this is intended to be a curated list of libraries that meet some criteria, then IMO we need to create a page that lists the defining criteria in order to be listed. However, I think you'll still find that the library list is going to get really long -- this is a good problem to have! --Legalize (talk) 06:35, 29 June 2015 (PDT)
[edit] Splitting up boost
I see that boost containers are now listed on their own. Should we split up the rest of boost as well? boost.asio, boost.GIL, BGL, and boost.Spirit are a lot more notable (there's a book written just on BGL) than boost.heap or boost.bimap. --Cubbi 14:58, 21 August 2012 (PDT)
- Yes, of course. I've created these sections only to see how they would look like, so any presentation issues could be solved. -- P12 15:02, 21 August 2012 (PDT)
[edit] Graphic Libraries link consistency
FTLK and GTKmm projects links point on home page, whereas Qt link directly point on documention (and avoid user find useful info such how to get it or license, etc). Shouldn't the current link (http://doc.qt.digia.com/) be replaced by http://qt.digia.com/product/ ? Deronnax 06:56, 12 October 2012 (PDT)
- Feel free to change or add links. The {{lib}} template already allows to specify different links for the project page, download page and documentation page.
[edit] Pure C++, STL-free libraries
C++ gets a lot of undeserved hate from programmers working on bare-metal and other resource constrained systems - mostly because free and good C++/RTOS libraries are far and between. There is also no place to list them.
I hope the Embedded section will alleviate that sometime. A lot of those are not-so-free licensed (usually dual GPL) or hidden behind silly EULA forms, hope that will not be a problem. Ezdiy (talk) 13:42, 21 September 2013 (PDT)
- I concur that it's worth to have Embedded section. However, I'm don't think adding libraries that can't be quickly evaluated (i.e. needs any additional step than just clicking download link) is a good idea. There are plenty of commercial options for each open-source library and we don't want to list them all. The requirement of available source seems to be a good compromise for now. --P12 11:18, 22 September 2013 (PDT)
[edit] Qt lib is more than only graphics
Why has Qt so few place in this list? It mostly covers 10 categories and is quite complete.
(I was searching a Qt5 review since C++11 and C++14 are released)
[edit] making sense of this list
I think this list would be more useful if there was additional info available to tell one-man github projects from major libraries, and to tell forgotten fossils from actively developed products. Perhaps a table with these columns:
Name/URL | Description | Owner/Lead | License | C++ SLOC | Commits/year | Developers/year | Last commit | Entry updated |
---|---|---|---|---|---|---|---|---|
folly | C++11 components for concurrency, networking, containers, etc | Apache | 126198 | 1031 | 189 | 2016-05-26 | 2016-05-26 | |
ogre3D | scene graph based 3D graphics rendering engine | Thorus Knot Software | MIT | 502542 | 2337 | 87 | 2016-06-07 | 2016-06-10 |
Qt | GUI application development framework | The Qt Company | Multiple | 9760039 | 15293 | 363 | 2016-06-05 | 2016-06-10 |
SOCI | SQL database access library | Maciej Sobczak (CERN) | Boost | 38741 | 220 | 17 | 2016-06-28 | 2016-07-05 |
I got the numbers above by
- folly:
- git clone https://github.com/facebook/folly.git
- cloc . (manually added C++ Code and C/C++ Header Code, ignoring C++ Comments)
- git rev-list --all --count --since="1 year ago"
- git shortlog -sn --since="1 year ago" | wc -l
- soci: git clone https://github.com/SOCI/soci.git, same as above
- qt5
- git clone git://code.qt.io/qt/qt5.git; cd qt5; perl init-repository
- cloc .
- find . -name .git -type d -exec <above>
- find . -name .git -type d -exec <above> | awk '{$1="";print}' | sort | uniq | wc -l
- ogre:
- hg clone https://bitbucket.org/sinbad/ogre
- cloc .
- Y=$((`date +"%s"` - 365*24*3600)) hg log --template "{author|person} {date}\n" | awk "{if(\$NF > $Y) print}" | wc -l
- hg log --template "{author|person} {date}\n" | awk "{if(\$NF > $Y) {--NF;print}}" | sort | uniq | wc -l
would be nice to have downloads in the last year or some other measure of use - github docs say I should see download_count, but I don't see it in https://api.github.com/repos/facebook/folly/releases/872613 - maybe that number isn't trivially accessible
I realize most libs would stay out of the table at first, but popular libraries probably have users who would update their favorite library stats when it gets too old. and the fossils will fossilize further in a boring list below the table or with old dates in "Entry updated". Comments? --Cubbi (talk) 09:43, 26 May 2016 (PDT)
- I like the idea, but the example you posted is way too wide, also there's too much information for my taste. I would drop Commits and Developers/year; SLOC should be kLOC instead (to keep it narrow); also the owner is probably not something most would want to see at a first glance. Pezo (talk) 00:39, 19 July 2016 (PDT)
- Agree on kLOC, Weakly agree on Owner/lead: it helps tell libraries opensourced by major companies (Facebook, Bloomberg, Google) from libraries that earned their popularity on their own, but it probably shouldn't be a reason to choose one library over another, Disagree on commits/developers: it's definitely important to be able to tell a library that one guy commits once a month, a library that nobody touched in a year, and a library where a hundred people make changes every day. --Cubbi (talk) 05:56, 19 July 2016 (PDT)
- new layout:
Name/URL | Description | License | C++ kLOC | Commits
last year |
Developers
last year |
Last commit | Entry updated |
---|---|---|---|---|---|---|---|
folly | C++11 components for concurrency, networking, containers, etc | Apache | 126 | 1031 | 189 | 2016-05-26 | 2016-05-26 |
ogre3D | scene graph based 3D graphics rendering engine | MIT | 502 | 2337 | 87 | 2016-06-07 | 2016-06-10 |
Qt | GUI application development framework | Multiple | 9760 | 15293 | 363 | 2016-06-05 | 2016-06-10 |
SOCI | SQL database access library | Boost | 39 | 220 | 17 | 2016-06-28 | 2016-07-05 |
Dlib | Machine learning and data analysis | Boost | 292 | 923 | 24 | 2016-07-24 | 2016-07-24 |
[edit] Sort libraries alphabetically by their name
I'm tempted to sort the libraries alphabetically by name inside their respective categories. Does that sound like a good idea, or is there some other order that I don't get? Pezo (talk) 00:30, 19 July 2016 (PDT)
[edit] Discussion for removal of certain libraries
This list initially had some of the best C++ libraries. Now it seems that anyone whose uploaded something to github can past a self-marketing link to this page. I propose a discussion on removing some of the lesser quality links.
As an example, in the generic libraries section there is:
wdl-AmirFJ - a modified version of WDL-OL with some improvements.
what is WDL or OL? furthermore the github project is 0 stars, 0 forks.
- Yeah, this is kind of a problem with a "list of links" page. I'm fine with some pruning of links to less-notable projects. :) --Nate (talk) 05:31, 19 September 2016 (PDT)
[edit] Can we get a table of contents?
--Ybab321 (talk) 04:03, 16 April 2021 (PDT)
- Sounds reasonable. We only need to add unique anchors before each middle-level name, e.g.
{
{
anchor
|AudioFingerprinting
}
}
; Fingerprinting
to have unique links. Other titles/links (e.g. ==Communication==
H2
-name) are unique on their own.
What style (hierarchy) is more preferable then?
Libraries (TOC) |
---|
Or more flat arrangement:
Extended content |
---|
- Or maybe something else. (?) : --Space Mission (talk) 05:34, 16 April 2021 (PDT)
- ✔ --Space Mission (talk) 14:32, 17 April 2021 (PDT)