Skip to main content

ecstatic

Slightly NIH Flask-based app to serve static content. It tries to capture 80% of the use-cases that are normally handled by the likes of nginx and Apache, only much slower =).

Other packages that do similar, but not quite the same things:

Configuration

Ecstatic has a single configuration file whose location is given via an environment variable “ECSTATIC_EXPORTS”. The file is parsed using Python3’s configparser module, with each section being processed from top to bottom.

Whenever a request comes in, a section is checked for whether or not it matches. If a match is found, no further sections are examined and the configuration in said section is used to serve the request.

A section matches a request if it

  1. Has a match key with a regular expression that matches the request’s path or

  2. Has a root section with no match present.

Any other section is ignored.

match-Sections

Any section that contains a match-key must also contain an fspath-key. If the URL path matches the expression given, fspath is interpolated as a format string, with positional arguments from the expression (missing groups are empty strings instead of None).

The section must still contain a root-entry, also a format string, which is used to jail paths.

root-Sections

Any section containing just a root-entry will simply serve content from the given root path, mapping 1:1 onto URLs.

Examples

A simple configuration that serves content from users public_html-directories (which are assumed to all be inside /home) and /var/www otherwise:

[homes]
# exposes /home/bob/public_html/ on http://example.org/~bob/
match = ^~([a-zA-Z0-9]+)(/.*)?$
fspath = /home/{0}/public_html{1}
root = /home/{0}
dirindex = on

[www]
root = /var/www

Metadata

Release files for ecstatic 0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ecstatic 0.4
File Size Uploaded
ecstatic-0.4.tar.gz 3.5 kB Details

Release files / ecstatic-0.4.tar.gz

Download URL ecstatic-0.4.tar.gz
Size 3.5 kB
Tags Source
SHA-256 checksum
How to use checksums
018a841a963d002a443b2e782c47f92121d588ff8f5d91af98d0b0ff874cbab6
BLAKE2b-256 checksum
How to use checksums
7373e3e272ee7fae9213c7ce507c52137330d6493ae5bd860489064d0781ea3d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.4 This release

1 release file

0.3

1 release file

0.2.dev1

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page