What are the "serious" libraries?

Fede Pereiro fpereiro at gmail.com
Sat Apr 4 19:41:57 UTC 2020


Hi Joe & friends!

While not a library per se (it's a server), Redis provides well
implemented data structures written in C. I believe all its primitives
(like its dynamic string library) are modular and can be repurposed as
libraries, at least to some extent.

Cheers!


сб, 4 апр. 2020 г. в 20:02, Joe Nelson <joe at begriffs.com>:
>
> I've been looking for major libraries that do the heavy lifting behind
> the scenes for most software, and that power features in other languages
> (like how Haskell relies on libgmp to do the actual numerical work).
>
> I came up with the list below. Anybody have more suggestions for serious
> and portable libraries? For instance, I'm looking for a good cross
> platform GUI library. Also is there a good container library for C that
> provides generic data structures?
>
> LibreSSL https://www.libressl.org/
>         Symmetric ciphers
>         Public key cryptography and key agreement
>         Certificates
>         Authentication codes and hash functions
>         Input, output, and data encoding
>
> ICU http://site.icu-project.org/home
>         Code Page Conversion
>         Collation
>         Formatting numbers, dates, times and currency amounts
>         Time calculations with calendars and time zones
>         Unicode: character properties, normalization, case folding, other fundamental operations
>         Regular expressions
>         Bidirectional writing
>         Text Boundaries: Locate the positions of words, sentences,
>           paragraphs within a range of text, or identify locations that would
>           be suitable for line wrapping when displaying the text
>
> SQLite https://sqlite.org/index.html
>         an in-process library that implements a self-contained,
>           zero-configuration, transactional SQL database engine
>         uses a high-level, stable, reliable, cross-platform,
>           widely-deployed, extensible, performant, accessible,
>           concurrent file format
>
> GMP https://gmplib.org/
>         arbitrary precision arithmetic, operating on signed integers,
>           rational numbers, and floating-point numbers
>         carefully designed to be as fast as possible by using fullwords as
>           the basic arithmetic type, by using fast algorithms, with highly
>           optimised assembly code for the most common inner loops for a lot
>           of CPUs
>
> X/Open Curses https://publications.opengroup.org/c094
>         (ncurses is an implementation and extension https://invisible-island.net/ncurses/)
>         terminal capability detection
>         "raw" mode keyboard input
>         cursor motion
>         line drawing
>         highlighting, underlining
>         {insert,delete} {line,character}
>         status line
>         area clear
>         windows
>         color
>
> libcurl https://curl.haxx.se/libcurl/
>         multi-protocol file transfer
>
> lex / yacc   (flex and bison are widely available implementations)
>         https://pubs.opengroup.org/onlinepubs/9699919799/utilities/lex.html
>         https://pubs.opengroup.org/onlinepubs/9699919799/utilities/yacc.html
>         generate lexers and parsers
>
> libarchive https://www.libarchive.org/
>         multi-format archive and compression
>         (arguably it uses more fundamental libraries internally like zlib)


More information about the Friends mailing list