C library for the Public Suffix List
Go to file
Daniel Kahn Gillmor fe479c6c6e Release 0.7.1
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABCgAGBQJU6M9kAAoJEAgwLbaiZwQotbwP/iIaonabM2HbgjV1h8ajtCQO
 vV1wgSpYHoRqb/0fIecUzXkEnKWcIbnVs/N8L1ui1Z0D0CliD7V8jzr4KVo2ip5K
 LqMn3oTEB7jV9Z31BAwmzGU8rBwRa7MdHlNLGcUiLb0oSTCrLieyJYAE/mK48YQq
 bWmbVpjnNy49JV9mLML1uxFFwASlX5OtfDDUaE9KsYy3P1SjlscW9KV4ST+1H3Hs
 FQsbt9eQFsLjt3hV03K9K6+yU9j7umCKXp0RqONonY7t6kwNi0HRR/bgdCJUAbHO
 AQRLZsnYTVngLHv+IVo0fF02CgBT+eDI8dppY6CSkOn4DZU8bV2fk46bCpnaNlgj
 Cx1UjQITNbHc2jyxDgnv38jKHzJB69kvtbrmS63HxLyiqE0z2X6cDttqPkwZLfJA
 CVJbCQ8fZUN/3etFYaqX27v95PpIbEsRffqjJ6hfp34gDPp3RprdBvC28tLP7HB/
 +V/+qRBQQwsxXRVb+bGXBQUjBpOIwPJQwTT1QhupwMA847geT+YyQcnIHNhwFXkG
 H7E5TwLvGfQUi8s+iqbsT36Q8SUxxjnw24wJYZsFXg2DdhUnuOA7ZKMxR/E7V4zy
 9TkfRUPGnx+4HwVOCaI9PEUYJ425N3GIPp2+07k3lVD/uT0OhhGyDKpudrPluWCo
 bGvkXzJHjhxMJucmcAvu
 =tu6S
 -----END PGP SIGNATURE-----

Merge tag 'libpsl-0.7.1' into debian

Release 0.7.1
2015-07-09 10:06:35 -04:00
data new version of effective_tld_names.dat 2015-02-21 19:29:55 +01:00
debian use new upstream tags 2015-07-09 10:06:04 -04:00
docs/libpsl fixed docs for 'make distcheck' after 'make clean' 2015-01-21 17:02:27 +01:00
include fixed typos in comments 2014-07-07 11:45:24 +02:00
po autoconf first version 2014-03-20 22:43:04 +01:00
src Don't use locale dependent isspace() 2015-01-26 11:05:32 +01:00
tests Don't use locale dependent isspace() 2015-01-26 11:05:32 +01:00
tools added code for all of runtime and builtin options 2014-06-30 13:21:16 +02:00
.dir-locals.el document indentation conventions for emacs users 2014-03-21 14:39:17 -04:00
.gitignore git should ignore ephemeral files. 2014-03-21 14:19:25 -04:00
.travis.yml fixed libidn package names in .travis.yml 2014-06-30 14:49:22 +02:00
ABOUT-NLS autoconf first version 2014-03-20 22:43:04 +01:00
AUTHORS Release v0.7.1 2015-02-21 19:30:52 +01:00
COPYING fixed authors name to UTF-8 2014-06-27 09:54:32 +02:00
LICENSE fixed authors name to UTF-8 2014-06-27 09:54:32 +02:00
Makefile.am Do not install docs when gtk-doc is not installed 2015-01-26 13:16:59 +01:00
NEWS Release v0.7.1 2015-02-21 19:30:52 +01:00
README inital commit 2014-03-20 17:17:24 +01:00
README.md Release V0.3.0 2014-06-05 16:29:20 +02:00
autogen.sh explicitely remove gtk-doc.make if gtkdoc is not installed 2015-01-23 12:19:50 +01:00
configure.ac Release v0.7.1 2015-02-21 19:30:52 +01:00
libpsl.pc.in Fixed pkg-config file 2014-11-14 11:40:29 +01:00

README.md

Build Status

libpsl - C library to handle the Public Suffix List

A "public suffix" is a domain name under which Internet users can directly register own names.

Browsers and other web clients can use it to

  • avoid privacy-leaking "supercookies"
  • avoid privacy-leaking "super domain" certificates (see post from Jeffry Walton)
  • domain highlighting parts of the domain in a user interface
  • sorting domain lists by site

Libpsl...

  • has built-in PSL data for fast access
  • allows to load PSL data from files
  • checks if a given domain is a "public suffix"
  • provides immediate cookie domain verification
  • finds the longest public part of a given domain
  • finds the shortest private part of a given domain
  • works with international domains (UTF-8 and IDNA2008 Punycode)
  • is thread-safe
  • handles IDNA2008 UTS#46 (libicu is used by psl2c if installed)

Find more information about the Publix Suffix List here.

Download the Public Suffix List here.

API Documentation

You find the current API documentation here.

Quick API example

#include <stdio.h>
#include <libpsl.h>

int main(int argc, char **argv)
{
	const char *domain = "www.example.com";
	const char *cookie_domain = ".com";
	const psl_ctx_t *psl = psl_builtin();
	int is_public, is_acceptable;

	is_public = psl_is_public_suffix(psl, domain);
	printf("%s %s a public suffix.\n", domain, is_public ? "is" : "is not");

	is_acceptable = psl_is_cookie_domain_acceptable(psl, domain, cookie_domain);
	printf("cookie domain '%s' %s acceptable for domain '%s'.\n",
		cookie_domain, is_acceptable ? "is" : "is not", domain);

	return 0;
}

Command Line Tool

Libpsl comes with a tool 'psl' that gives you access to most of the library API via command line.

$ psl --help

prints the usage.

License

Libpsl is made available under the terms of the MIT license.
See the LICENSE file that accompanies this distribution for the full text of the license.

Building from git

Download project and prepare sources with

	git clone http://github.com/rockdaboot/libpsl
	./autogen.sh
	./configure
	make
	make check

Mailing List

Mailing List Archive

Mailing List

To join the mailing list send an email to

libpsl-bugs+subscribe@googlegroups.com

and follow the instructions provided by the answer mail.

Or click join.