Skip to main content

Sender Rewriting Scheme (SRS) library for Python

Project description

srslib is a modern Python implementation of the Sender Rewriting Scheme (SRS).


  • Compatible with Python 2.7 and 3.x;

  • Implements the standard “Guarded” SRS scheme as described in the original SRS paper;

  • Simple to use and understand.


pip install srslib

Example Usage

import srslib

srs = srslib.SRS('my_secret_key')

# Rewrites an email from to
rewritten_addr = srs.forward('', '')
# => ''

# Reverse it to get the address to bounce to.
  bounce_addr = srs.reverse(rewritten_addr)
  # => ''
except srslib.Error as e:
  ...  # Handle errors


The full documentation for srslib lives at


This library is a clean re-implementation of SRS in modern Python based on the original SRS paper, and taking inspiration from the canonical libsrs2 C implementation and the older pysrs library (which itself is based on the Mail::SRS Perl package).

Compared to these two libraries, srslib

  • … is a clean, modern, pure-Python implementation and supports Python 3.x;

  • … discards baggage from Mail::SRS around legacy schemes and settings.


Licensed under the Apache License, Version 2.0.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

srslib-0.1.4.tar.gz (6.1 kB view hashes)

Uploaded source

Built Distributions

srslib-0.1.4-py3-none-any.whl (8.1 kB view hashes)

Uploaded py3

srslib-0.1.4-py2-none-any.whl (8.1 kB view hashes)

Uploaded py2

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page