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.8.tar.gz (99.3 kB 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.8-py3-none-any.whl (127.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: slinn-2.3.8.tar.gz
  • Upload date:
  • Size: 99.3 kB
  • 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.8.tar.gz
Algorithm Hash digest
SHA256 2090ecc414795718b77517cc56ee75cf5b2a6b4a233d98069fc47003d29f3ed7
MD5 f8de454e57c521c7a9599035114ba968
BLAKE2b-256 63d1d68bea34205c2d96a061c73369a98c49071b169067f94a873ee4903fc1be

See more details on using hashes here.

File details

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

File metadata

  • Download URL: slinn-2.3.8-py3-none-any.whl
  • Upload date:
  • Size: 127.7 kB
  • 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.8-py3-none-any.whl
Algorithm Hash digest
SHA256 7d3a8c85cca4c34d3f7e631627f0a6d58130d3bb8817f2ab0b48400517c67f9e
MD5 e849c0da11fd705865a1221852a469cd
BLAKE2b-256 72c5324673b0fe01d2dbce9842342d9d123afd441f5206271020f53c2e1fa4a4

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