Friday, October 21, 2011

unbloated resources in C

Here is a list of alternative libraries written in C, mostly with liberal (BSDish) licenses 

Ssl/encryption ... libtomcrypt
Imaging ... stb_image ( or nanojpeg+lodepng+webp
Ecmascript (aka javascript) ... see-3.1.1424.tar.gz (currently unmaintained)
OpenGL ... tinyGL <<== SDL implementation
Html5 ... hubbub
Css ... libcss
Svg ... libtinysvg
Lua ... stua (
Freetype ... stb_freetype
Tcl ... jimtcl
Ogg ... stb_ogg
Gcc ... llvm+clang or tinycc (lgpl)
Perl ... microperl (distributed with perl)
Python ... tinypy
GUI ... sdl, agarpicogui, anttweakbar
Gnu-utils ... Google's toolbox, asmutils (gpl2), busybox (gpl2), embutils (gpl2), toybox (gpl2)...
Video ... Webmtheora
bionic, musl (lgpl), uclibc (lgpl), dietlibc(gpl2), newlibc  or a bsdlibc...

If you really want to use C++ without the bloat of libstdc++, try one of these standard template libraries: 
... libcxx, uclibc++, stlport, eastl, ustl, stdcxx, ... the sgi stl 

more to follow 

1 comment:

  1. I'm looking for an unbloated C PDF viewer. Noticed your mupdf-GPL2 archive at github. Since I can't find anything better, I'm investigating using the mupdf library. I'm looking at the last GPL3 version rather than GPL2 though. I have pdftxt working with it and replaced the build system with CDetect and generated makefiles. I'm also looking into adding large file support. Would be interested in comparing notes on modifying/updating older versions of mupdf to get better functionality and stability from them.

    I also like to find unbloated C resources. I didn't see it mentioned in your list but nanosvg is really good. (After I found it, it was also incorporated in SDL_image and FLTK). I use BSD gettext instead of the GNU version of libintl/gettext and I use BSD gzip and librarchive. I'm investigating switching to libressl or possibly bearssl instead of openssl. I thought BSD-curses looked like an interesting alternative to ncurses. Haven't experimented with it much because I'm mainly using pdcurses with SDL 2 backend instead of using it for command line applications. swiss seems like an interesting alternative to busybox and toybox. I also like some of the Minix alternatives and sbase. I'm using picoGL (not tinyGL) and with some patching, it has sufficient functionality to get Emilia pinball running. Looking into adding some other capabilities so I can port a few programs to systems that may not have OpenGL readily available.

    Some of the programs I'm experimenting with and/or patching are listed here: Others are in the works. Love finding useful alternatives and customizing them. Would enjoy hearing from you if you want compare resources or patches/customizations further.