Metadata-Version: 2.1
Name: sewer
Version: 0.8.4
Summary: Sewer is a programmatic Lets Encrypt(ACME) client
Home-page: https://github.com/komuw/sewer
Author: komuW
Author-email: komuw05@gmail.com
Maintainer: mmaney
License: MIT
Keywords: letsencrypt,ACME,dns-01,http-01,RFC8555
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Security
Classifier: Topic :: System :: Installation/Setup
Classifier: Topic :: System :: Networking
Classifier: Topic :: System :: Systems Administration
Classifier: Topic :: Utilities
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Description-Content-Type: text/markdown
Requires-Dist: cryptography
Requires-Dist: requests
Provides-Extra: acmedns
Requires-Dist: dnspython ; extra == 'acmedns'
Provides-Extra: aliyun
Requires-Dist: aliyun-python-sdk-alidns ; extra == 'aliyun'
Requires-Dist: aliyun-python-sdk-core-v3 ; extra == 'aliyun'
Provides-Extra: alldns
Requires-Dist: aliyun-python-sdk-alidns ; extra == 'alldns'
Requires-Dist: aliyun-python-sdk-core-v3 ; extra == 'alldns'
Requires-Dist: apache-libcloud ; extra == 'alldns'
Requires-Dist: boto3 ; extra == 'alldns'
Requires-Dist: cloudns-api ; extra == 'alldns'
Requires-Dist: dnspython ; extra == 'alldns'
Requires-Dist: hurricanedns ; extra == 'alldns'
Requires-Dist: tldextract ; extra == 'alldns'
Provides-Extra: aurora
Requires-Dist: apache-libcloud ; extra == 'aurora'
Requires-Dist: tldextract ; extra == 'aurora'
Provides-Extra: cloudflare
Provides-Extra: cloudns
Requires-Dist: cloudns-api ; extra == 'cloudns'
Provides-Extra: dev
Requires-Dist: twine ; extra == 'dev'
Requires-Dist: wheel ; extra == 'dev'
Provides-Extra: dnspod
Provides-Extra: duckdns
Provides-Extra: gandi
Provides-Extra: hurricane
Requires-Dist: hurricanedns ; extra == 'hurricane'
Provides-Extra: powerdns
Provides-Extra: rackspace
Requires-Dist: tldextract ; extra == 'rackspace'
Provides-Extra: route53
Requires-Dist: boto3 ; extra == 'route53'
Provides-Extra: test
Requires-Dist: black (==19.10b0) ; extra == 'test'
Requires-Dist: coverage (>=5.0) ; extra == 'test'
Requires-Dist: pylint (==2.3.1) ; extra == 'test'
Requires-Dist: pytest (>=6.0) ; extra == 'test'
Provides-Extra: unbound_ssh

## Sewer

[![Codacy Badge](https://api.codacy.com/project/badge/Grade/ccf655afb3974e9698025cbb65949aa2)](https://www.codacy.com/app/komuW/sewer?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=komuW/sewer&amp;utm_campaign=Badge_Grade)
[![CircleCI](https://circleci.com/gh/komuw/sewer.svg?style=svg)](https://circleci.com/gh/komuw/sewer)
[![codecov](https://codecov.io/gh/komuW/sewer/branch/master/graph/badge.svg)](https://codecov.io/gh/komuW/sewer)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/komuw/sewer)

Sewer is a Let's Encrypt(ACME) client.  
It's name is derived from Kenyan hip hop artiste, Kitu Sewer.  

- The stable release is [0.8.4](https://komuw.github.io/sewer/notes/0.8.4-notes).
- More history in the [CHANGELOG](https://komuw.github.io/sewer/CHANGELOG).

PYTHON compatibility: 3.5 is nominally still supported, and with assistance
from Github's multi-version Python linting I've repaired some issues.  Even
with the GH multi-version testing, there are parts of the drivers,
especially, which I simply can't test (with 3.5) because the actual service
provider interaction has to be mocked.  Such issues will be fixed on a
best-effort basis when reported for the life of 0.8.

I (maintainer @mmaney) loiter in channel ##sewer (on irc.freenode.net) for
those who remember IRC.  Don't ask to ask, but waiting is.

## Features
- Obtain or renew SSL/TLS certificates from [Let's Encrypt](https://letsencrypt.org)
- Supports acme version 2 (current RFC including post-as-get).
- Support for SAN certificates.
- Supports [wildcard certificates](https://komuw.github.io/sewer/wildcards).
- Bundling certificates.
- Support for both RSA and ECDSA for account and certificate keys.
- Supports [DNS and HTTP](https://komuw.github.io/sewer/UnifiedProvider) challenges
  - List of currently supported
    [DNS services and BYO-service notes](https://komuw.github.io/sewer/dns-01)
  - HTTP challenges are a new feature, no operational drivers in the tree
    yet.  [See usage and BYO-service notes](https://komuw.github.io/sewer/http-01)
- sewer is both a [command-line program](https://komuw.github.io/sewer/sewer-cli)
  and a [Python library](https://komuw.github.io/sewer/sewer-as-a-library) for custom use
- Well written(if I have to say so myself):
  - [Good test coverage](https://codecov.io/gh/komuW/sewer)
  - [Passing continuous integration](https://circleci.com/gh/komuW/sewer)
  - [High grade statically analyzed code](https://www.codacy.com/app/komuW/sewer/dashboard)
  - type hinting to support mypy verification is a recently begun WIP

## Installation

```shell
pip3 install sewer

# with All DNS Provider support, include aliyun, Hurricane Electric, Aurora, ACME ...
# pip3 install sewer[alldns]

# with Cloudflare support
# pip3 install sewer[cloudflare]

# with Aliyun support
# pip3 install sewer[aliyun]

# with HE DNS(Hurricane Electric DNS) support
# pip3 install sewer[hurricane]

# with Aurora DNS Support
# pip3 install sewer[aurora]

# with ACME DNS Support
# pip3 install sewer[acmedns]

# with Rackspace DNS Support
# pip3 install sewer[rackspace]

# with DNSPod DNS Support
# pip3 install sewer[dnspod]

# with DuckDNS DNS Support
# pip3 install sewer[duckdns]

# with ClouDNS DNS Support
# pip3 install sewer[cloudns]

# with AWS Route 53 DNS Support
# pip3 install sewer[route53]

# with PowerDNS DNS Support
# pip3 install sewer[powerdns]
```

sewer(since version 0.5.0) is now python3 only.  To install the (now
unsupported) python2 version:

```shell
pip install sewer==0.3.0
```

Sewer is in active development and it's API will change in backward incompatible ways.
[https://pypi.python.org/pypi/sewer](https://pypi.python.org/pypi/sewer)

## Development setup

See the how to contribute [documentation](https://github.com/komuw/sewer/blob/master/.github/CONTRIBUTING.md)

## FAQ
- Why another ACME client?          
  I wanted an ACME client that I could use to programmatically(as a library) acquire/get certificates. However I could not 
  find anything satisfactory for use in Python code.
- Why is it called Sewer?
  I really like the Kenyan hip hop artiste going by the name of Kitu Sewer.                            


