Skip to main content

Dynamic JSON support for Starlette

Project description

Starlette Marshal

This package has two usage.Provide a "JSONResponse" to replace simple Starlette "JSONResponse" and works with other Python JSON libraries. And offer a "json" library to replace Python "json" library, so we can use it instead.

Installation

To install base package:

pip install -U starlette-marshal

to support RapidJSON:

pip install -U starlette-marshal[rapidjson]

or if you prefer the latest development version, you can install it from the source:

Quickstart

We want to be soft dependency. So this package is 100% compatible with standard Python and Starlette package. To archive this goal you can import it like this:

try:
    from starlette_marshal import json
except ImportError:
    import json

try:
    from starlette_marshal import JSONResponse
except ImportError:
    from starlette.responses import JSONResponse

the usage is just like Starlette itself:

async def get(request: Request) -> Response:
    content: dict = {
        'foo': 'This is foo',
        'bar': 'And here the bar',
    }
    return JSONResponse(content=content)

and for "json" library:

async def post(request: Request) -> Response:
    body: dict = json.loads(s=await request.body())
    return JSONResponse(content=body)

TODO

  • Support RapidJSON
  • Support UltraJSON
  • Support simplejson
  • Support orjson

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

starlette-marshal-0.1.0.tar.gz (7.0 kB view details)

Uploaded Source

Built Distribution

starlette_marshal-0.1.0-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file starlette-marshal-0.1.0.tar.gz.

File metadata

  • Download URL: starlette-marshal-0.1.0.tar.gz
  • Upload date:
  • Size: 7.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.1

File hashes

Hashes for starlette-marshal-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6f64eeb9829a9537afabfbd81f9fb027bdb0365db647f397d33c648140431d0b
MD5 21ad2e9c8286e0615c80d71d55f46043
BLAKE2b-256 b82a8256507594d8c2a49382d7e366e548cb4318cfcc20b558075bcd91ead217

See more details on using hashes here.

File details

Details for the file starlette_marshal-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: starlette_marshal-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.1

File hashes

Hashes for starlette_marshal-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d20b7ca74a1396084d8513261647d2364cc2f8d8632e0af083b6cbc045d1f2d8
MD5 003bd2407f3dbf546ffee7f5767fc53b
BLAKE2b-256 15506c97b1d8decaae3526ce7708226cbf32e817e7fdfb83b34739be71b0da67

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page