Skip to main content

An HTTP server framework

Project description

Slinn

Slinn is an HTTP server framework
License GitHub top language
GitHub Release GitHub repo size GitHub Repo stars

Simple example

from slinn import (
    ApiDispatcher, AnyFilter, AsyncRequest, HttpResponse,
    HttpRedirect, HttpJSONResponse
)


dp = ApiDispatcher()


@dp.get('api/<str method>')
async def api(request: AsyncRequest, method: str) -> HttpResponse:
    return HttpJSONResponse(
        status='ok',
        method=method,
        ip=request.ip
    )

@dp.get()
@dp.get('index')
async def index() -> HttpResponse:
    return HttpRedirect('/helloworld')


@dp(AnyFilter)
async def helloworld() -> HttpResponse:
     return HttpResponse('Hello world!')

Begin project

Standart

slinn-admin create-project www
cd www
venv/bin/activate
slinn create-app localhost host=localhost host=127.0.0.1

Insert example into localhost/app.py file, then run start.bat or start.sh script

[!TIP] Instead of use example, create app from template slinn template example

Expected output

Loading config...
Apps: firstrun
Debug mode enabled
Smart navigation enabled

Starting server...
HTTP server is available on http://localhost:8080/

To config project you should edit ./project.json

To config app you should edit ./%app%/config.json

Classic

Unix-like (Linux, MacOS, FreeBSD...):
mkdir helloworld 
cd helloworld
python3 -m venv venv
venv/bin/activate
Windows:
mkdir helloworld 
cd helloworld
python3 -m venv venv
venv\Scripts\activate

Insert example into ./example.py and add following code:

from slinn import AsyncServer
import asyncio
asyncio.run(AsyncServer(dp).listen(Address(8080)))

then write python example.py

Excepted output

helloworld $ venv/bin/python example.py
HTTP server is available on http://localhost:8080/

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

slinn-2.3.5.tar.gz (6.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

slinn-2.3.5-py3-none-any.whl (30.1 MB view details)

Uploaded Python 3

File details

Details for the file slinn-2.3.5.tar.gz.

File metadata

  • Download URL: slinn-2.3.5.tar.gz
  • Upload date:
  • Size: 6.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.3 CPython/3.12.2 Windows/11

File hashes

Hashes for slinn-2.3.5.tar.gz
Algorithm Hash digest
SHA256 f603e8b2367e8fa096f71718b56ecd0113e98cb36ba4066c9649233a68cdded4
MD5 c63b3291b9bd7ca430de6b2e3187089a
BLAKE2b-256 1f59a27dee608a2c02eca15b8119b290108661de4a13733750a148ee1b0c22dd

See more details on using hashes here.

File details

Details for the file slinn-2.3.5-py3-none-any.whl.

File metadata

  • Download URL: slinn-2.3.5-py3-none-any.whl
  • Upload date:
  • Size: 30.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.3 CPython/3.12.2 Windows/11

File hashes

Hashes for slinn-2.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 90ed2bf232042dadb2ed68fa7afd813447cda9ea76589c880c8201fae23d39a3
MD5 a9eecf65f0251ea41189975c992a78f7
BLAKE2b-256 474343580417658c8784f8c4d589fbd154188c4fc2c299cfaaebc92f4b411c7f

See more details on using hashes here.

Supported by

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