Skip to main content

Kristall

Tests Coveralls CodeFactor

Lightweight web framework (wink, wink) for building APIs and backends. Reasonably fast in execution, quite fast for development. If you need gazillions of requests served by single process in a second then there are better options than Kristall. I’m happy when it’s not slower than Flask.

Why

Some frameworks suck here, others suck there and none is good at all things I want. I decided to build a WSGI application tool that’s based on Werkzeug and is simpler than Flask. Sure, there are Flask extensions that make writing REST APIs simpler like Flask-RESTFul and Flask-RESTX but they are built on top of Flask and do many extra things that are better done by others, or not done at all. I wanted something that is somewhere in between Falcon and Flask. Simplicity of Falcon with convenience of Flask.

But since not everything sucks in Falcon I’d grab some ideas, like resourceful routing without need to subclass specific Resource base class, or only static route registration.

What

  • resourceful routing

  • static route registration

  • only JSON content type supported

  • very limited automatic coercion to JSON

That’s it for now.

Future developments:

  • JWT-based resource access control (optional)

  • CORS support (optional)

What not

  • no decorator-based route registration - there’s only one way to register routes and it is explicit

  • no built-in support for any other content type than application/json on both input and output

  • no fancy JSON de/encoding, only builtin json module is used in default JSON handling - use schema parsing/validating library eg. Marshmallow or Colander if you need anything beyond that; default behaviour may be customised to some degree by providing JSON decoder and encoder classes

How

Really very thin wrapper over Werkzeug utility functions and classes. Seriously, I’m not calling this a framework. Not yet. It consists of Application class that’s and entry point to runtime and Request/Response objects that in fact are Werkzeug’s built in wrappers reconfigured to support only JSON as transport media with some convenience methods.

Runtime dependencies

  • Python 3.7

  • Werkzeug 0.16

These are minimal versions of requirements.

Metadata

Release files for kristall 0.2.2

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

Source distribution (sdist)

Source distribution for kristall 0.2.2
File Size Uploaded Provenance Actions
kristall-0.2.2.tar.gz 9.2 kB Without provenance Details for kristall-0.2.2.tar.gz

Built distribution (wheel)

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

Total release size: 17.2 kB

Release files / kristall-0.2.2.tar.gz

Download URL kristall-0.2.2.tar.gz
Size 9.2 kB
Tags Source
SHA-256 checksum
How to use checksums
073da8f1fe3f0c5d15d666d07c311a268b994b131c50615728a76b18389de594
BLAKE2b-256 checksum
How to use checksums
7f471e90e49a6159ab714c5492cd73453b5116f596a907c1596de1c713c0b0d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.6

Release files / kristall-0.2.2-py3-none-any.whl

Download URL kristall-0.2.2-py3-none-any.whl
Size 8.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0458a792b5e71d733af3b1c41818f07c09c70bfb5a9ce902e63ea69bd3fddabf
BLAKE2b-256 checksum
How to use checksums
9c165240d5182e5510899bbd3885d3cbc9038082048e1e2feaf930376f10ceee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.6

Security for kristall 0.2.2

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.

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