A Varnish 4 and 5 VMOD for Unicode normalization, case-folding, and other operations for data in the UTF-8 encoding
C M4 Makefile Shell
Latest commit 95d1429 Feb 26, 2017 @fgsch Update submodule
Permalink
Failed to load latest commit information.
m4 Fix building with non-standard locations Feb 6, 2016
src
utf8proc @ 95fc75b Update submodule Feb 26, 2017
.gitignore Add gcov support Feb 8, 2016
.gitmodules
.travis.yml
LICENSE
Makefile.am Bring a number of changes from libvmod-geoip2 May 18, 2016
README.md Officially support Varnish 5 Nov 18, 2016
autogen.sh
configure.ac Simplify Feb 26, 2017

README.md

libvmod-utf8

Join the chat at https://gitter.im/fgsch/libvmod-utf8 Build Status

About

A Varnish 4 and 5 VMOD for Unicode normalization, case-folding, and other operations for data in the UTF-8 encoding.

Requirements

To build this VMOD you will need:

  • make
  • a C compiler, e.g. GCC or clang
  • pkg-config
  • python-docutils
  • libvarnishapi-dev in Debian/Ubuntu or varnish-libs-devel in CentOS/RedHat

If you are building from Git, you will also need:

  • autoconf
  • automake
  • libtool

In addition, to run the tests you will need:

  • varnish

If varnish is installed in a non-standard prefix you will also need to set PKG_CONFIG_PATH to the directory where varnishapi.pc is located before running autogen.sh and configure. For example:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

Installation

From a tarball

To install this VMOD, run the following commands:

./configure
make
make check
sudo make install

The make check step is optional but it's good to know whether the tests are passing on your platform.

From the Git repository

To install from Git, clone this repository by running:

git clone --recursive https://github.com/fgsch/libvmod-utf8

And then run ./autogen.sh followed by the instructions above for installing from a tarball.

Example

import utf8;

sub vcl_recv {
    # Case folding
    set req.url = utf8.transform(req.url, 1024);
}

License

This VMOD is licensed under BSD license. See LICENSE for details.