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.6.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.6-py3-none-any.whl (127.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: slinn-2.3.6.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.6.tar.gz
Algorithm Hash digest
SHA256 5a5d21696639ac3cc79e6c69d3ea8b143add843757cf10d33d219794327e7426
MD5 6e025d50ee3d80589382508f121eb280
BLAKE2b-256 24d50f4bd816b216158b3eabeecd8c749f042023c81458c6706241f1f195c879

See more details on using hashes here.

File details

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

File metadata

  • Download URL: slinn-2.3.6-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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 67652b597ab5536bc2af2f951dec326144021dee95b68cdd7044364d9201a15b
MD5 83884c78762273d70fa3f37b9aa9517a
BLAKE2b-256 1fd6971d8a69096fedb422d012806d198bd82b9f69a1dd7a9d6e7c615b688a25

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