Skip to main content

kodak

Web server for auto-generating banners, previews, thumbnails, and more from any directory. Lightweight, simple, and designed for performance.

Developed with Poetry 1.0+

Goals

  • Support defining server-side manipulation specifications

    KODAK_MANIP_FOOBAR_CROP_VERTICAL=300
    KODAK_MANIP_FOOBAR_SCALE_HORIZONTAL=1200
    KODAK_MANIP_FOOBAR_SCALE_STRATEGY=absolute
    
    KODAK_MANIP_FIZZBUZZ_NAME=black+white
    KODAK_MANIP_FIZZBUZZ_BLACK_AND_WHITE=true
    KODAK_MANIP_FIZZBUZZ_SCALE_HORIZONTAL=50
    KODAK_MANIP_FIZZBUZZ_SCALE_STRATEGY=relative
    
  • Support retrieving manipulated images based on server side configuration

    GET /image/<name>/foobar
    
    GET /image/<name>/black+white
    
  • Support optionally exposing full-resolution source images

    GET /image/<name>/original
    
  • Support caching of generated image manipulations for reuse

  • Support HTTP 410 for indicating removed images and manipulations

  • Support optional authentication with pre-generated access tokens

  • Support static file tree management for exposure via external web server (which is faster than serving files with python)

  • Support automatic indexing of newly added image files

  • Support automatic indexing of removed image files

  • Support arbitrary source directory structure

  • Support Dockerized deployment

  • Support bare-metal deployment (via systemd)

Non-goals

  • Client-defined image manipulations through publicly exposed parameters

    Manipulating images is- in the grand scheme of things- pretty resource intensive. Exposing dynamic parameters that can be cycled through to generate hundreds or thousands of permutations for every known image on a server could be used to either consume the server's entire disk or server's entire CPU.

  • Upload functionality

    This application should be as simple as possible. Lots of people have implemented file upload systems, synchronizers, and managers way better than I have.

  • Robust and flexible access control

    See above. Complex authentication can be added using a reverse proxy or any one of several dozen options for 3rd party middleware. The provided authentication is supposed to be dead simple for people who absolutely need the server to be private but absolutely cannot implement something more complicated.

  • Pre-creation of image manipulations

    The goal of this program is just-in-time creation of the manipulated assets with aggressive caching; first load is slow, subsequent loads are fast. For this use case there's no sense creating or storing an asset until it's known to be needed.

Metadata

Release files for kodak 0.1.0

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

Source distribution (sdist)

Source distribution for kodak 0.1.0
File Size Uploaded Provenance
kodak-0.1.0.tar.gz 23.7 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for kodak 0.1.0
File Interpreter ABI Platform
kodak-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 50.8 kB

Release files / kodak-0.1.0.tar.gz

Download URL kodak-0.1.0.tar.gz
Size 23.7 kB
Tags Source
SHA-256 checksum
How to use checksums
cbdd61e1258f7ae639db06d7353387f5266e16023da3191c2798cd632c88788e
BLAKE2b-256 checksum
How to use checksums
691036e3c08ecb2a83a8769446a4805b4ca63b818e156b26cac28fa25741efe2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.11 CPython/3.10.0 Linux/5.14.18-300.fc35.x86_64

Release files / kodak-0.1.0-py3-none-any.whl

Download URL kodak-0.1.0-py3-none-any.whl
Size 27.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a7d6373e617f7580242871ed89f4cc17d7e413ebd40f7b40afdf79912de878b4
BLAKE2b-256 checksum
How to use checksums
dcccacfb03ad60eb857f13efb6bacc0b98e04534c896c78c250b4ebc17ff425a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.11 CPython/3.10.0 Linux/5.14.18-300.fc35.x86_64

Security for kodak 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

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