Kristall
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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.