Skip to content

johnlettman/check-sieve

 
 

Repository files navigation

Build Status

check-sieve

This project aims to make checking mail sieve syntax easy and painless. Because breaking your sieve in production sucks.

For a web-based demonstration of check-sieve which is entirely browser-based, visit https://checksieve.com.

Build Dependencies

check-sieve minimally depends on having a modern C++ compiler. On BSD-like systems such as FreeBSD, you'll also need gmake installed.

Development Dependencies

The following dependencies are required in order to develop check-sieve:

  • bison >= v3.0.4
  • flex >= v2.5.35
  • Python >= 3.7
  • Python development headers (for testing)

Additionally, if you want to generate a javascript library, you'll need emscripten installed.

Compiling

At the moment, there are four targets for this project:

  1. check-sieve -- This is a command-line program you can use to verify sieves.
  2. libchecksieve.a -- A statically linked library for embedding in other programs (like check-sieve).
  3. checksieve.so -- This is a python extension created for use by the unit tests in the test directory
  4. wasm -- This builds a webassembly javascript library using emscripten.

To build check-sieve simply run make. This will also build the static library. Running make test will compile checksieve.so and run the python tests in the tests directory. Finally, running make all will run all of the other targets.

Installing

To install to /usr/local/, simply run the following:

make install

To install to a custom location, build and install with INSTALL_PREFIX set in your environment to the desired location.

Packages

Supported RFCs

Currently, the supported RFCs are:

If you find any discrepancies with these RFCs, or have reduced test-cases that should work but don't, please file an issue. If there's an RFC that isn't supported that you want, file an issue!

About

Syntax checker for mail sieves.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 81.1%
  • Python 17.2%
  • Other 1.7%