Small Libravatar implementation in C.
Warning: This software is not compatible with rust zealots.
libravatar.cgi is an open source CGI written in C implementing the Libravatar protocol. Its goal is to be minimal, secure and BCHS.
This implementation only serves existing avatars in the PNG format located in /var/www/htdocs/avatars and does not provide any way to upload a file. This should be the responsability of a separate system.
To request an avatar the following steps should be done :
- Create a hash of a lowercased email address using md5 or sha256 ;
- Call the CGI with a HTTP request on the path
/avatar/$hash.
A few options are accepted as GET parameters :
size: control the size of the image, must be between 1 and 512 with a default value of 80 ;default:404,mmandblankare supported ;rating: only kept for compatibility with Gravatar this option does nothing ;forcedefault:yorn.
The current version is only tested on OpenBSD but builds without errors on FreeBSD and Alpine.
- C compiler ;
- kcgi ;
- libpng.
- curl ;
- sharness ;
- pnginfo (optional).
Configure your http server of choice to receive this CGI. An example and minimalistic configuration file is provided in the config/ folder for OpenBSD httpd(8).
# mkdir /var/www/htdocs/avatars/
# cp config/default.png /var/www/htdocs/avatars/
$ ./configure
$ make
# make install
Regression tests are provided in the regress/ folder. They test this implementation and two others: the old Libravatar from Francois Marier and ivatar from Oliver Falk.
Either send send GitHub pull requests or send patches on SourceHut.
All sources use the ISC license excepts oil_libpng.{c,h}, and oil_resample.{c,h} which use the MIT license. These files are sourced from the liboil project.