C library for the Public Suffix List
Go to file
Daniel Kahn Gillmor 968ab62492 Release v0.11.0
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABCgAGBQJWAqCFAAoJEAgwLbaiZwQoavMP/ArDaUfyTTp1aB+N0xynzl/6
 0tVel+fAQFvW5D0uNzVU7hbo9Ql5WZHTUf8GGOVrH+X8SkLPsZ3kMvq2FsEZ9Qgu
 w0qm2Wmm2SSuCTaqFToCL5jekH/lDpnZH6RnvUdh0cFbSTKrRc90CP9r8b23BxkA
 RYaZezhnRfK4IDlYb6Yr8hzftsogfJ45VlCnbzrzjhm00OEiclYw11bcM2u3IWxn
 tj/CzSymHHUvfoof5VYejIsEYbvsH/s0vXPLk/8RI7gHS5d1SRpsxo036VVLi8Ln
 lRwomCZawifyEEAmKBPUbGW0TvGjALbsxHqdSrjPGXHbrT3WOtfWNP6OR1ZN/2wk
 ZKxi522nz6rEBWgRdeKJFbf3u7C/r9zL7kVG31hj/amkALZnChCC08mnkXkpX/MF
 xMhg7bK6R34GUQXko8hlF72ZjgYEbMpmLVw8w4pbXgNHMxmO10dCm36g1PWZ0f5N
 GMji+5kHvPnvgrziF2vafjFgdyCWQUL4rDxn+wQkLGP6LFv8pXzWedwZ5gitGM5Q
 /OGkHoDiy+Y/tPqVBbVUkm65H6Qo1wx0GcFLl4Zqajc91r5H9E6f/JQEqmfrVB3V
 PPLC3db/+mbOyG88YSBx/Fk9/7d7DX423OhZnVQocdbT7RAUWqyqk5zRZj7ND5XA
 UIm8AhuBvAW8MVU7cKYh
 =51//
 -----END PGP SIGNATURE-----

Merge tag 'libpsl-0.11.0' into debian

Release v0.11.0
2015-09-23 14:42:24 -04:00
contrib Add contrib/check-hard to test configure options 2015-08-06 13:23:38 +02:00
debian new upstream release 2015-08-15 13:56:08 +02:00
docs/libpsl Add PSL_VERSION defines and psl_check_version_number() to docs 2015-09-23 14:15:23 +02:00
include Update copyright years 2015-09-23 14:50:01 +02:00
list@2930bb4a52 Update submodule list 2015-09-15 14:50:58 +02:00
po autoconf first version 2014-03-20 22:43:04 +01:00
src Update copyright years 2015-09-23 14:50:01 +02:00
tests Update copyright years 2015-09-23 14:50:01 +02:00
tools Update copyright years 2015-09-23 14:50:01 +02:00
.dir-locals.el document indentation conventions for emacs users 2014-03-21 14:39:17 -04:00
.gitignore Add gtk-doc.m4 and include/libpsl.h to .gitignore 2015-09-23 14:16:52 +02:00
.gitmodules Add https://github.com/publicsuffix as git submodule 2015-07-14 13:25:42 +02: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.8.0 2015-08-06 16:35:16 +02:00
COPYING Update copyright years 2015-09-23 14:50:01 +02:00
LICENSE Update copyright years 2015-09-23 14:50:01 +02:00
Makefile.am Code cleanup, faster lookups 2015-09-19 10:50:00 +02:00
NEWS Release v0.11.0 2015-09-23 14:52:04 +02: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 Add https://github.com/publicsuffix as git submodule 2015-07-14 13:25:42 +02:00
configure.ac Release v0.11.0 2015-09-23 14:52:04 +02: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.