HTTPS and HTTP server framework
Project description
Slinn is a HTTPS and HTTP server framework
Create project
Unix-like (Linux, MacOS, FreeBSD...):
python3 -m slinn create helloworld
cd helloworld
venv/bin/python manage.py create localhost host=localhost host=127.0.0.1
venv/bin/python manage.py run
Windows:
py -m slinn create helloworld
cd helloworld
venv\Scripts\activate
py manage.py create localhost host=localhost host=127.0.0.1
py manage.py run
Simple example
# localhost/app.py
from slinn import Dispatcher, AnyFilter, LinkFilter, HttpResponse, HttpAPIResponse
dp = Dispatcher('localhost', '127.0.0.1')
@dp(LinkFilter('api'))
def api(request):
return HttpAPIResponse('{"status": "ok"}')
@dp(AnyFilter)
def helloworld(request):
return HttpResponse('Hello world!')
To config project you should edit ./project.json
To config app you should edit ./%app%/config.json
Functions:
from slinn import Server
server = Server(*dispatchers: list[Dispatcher], ssl_cert: str=None, ssl_key: str=None, http_ver: str='2.0')
server.address() -> str
server.reload(*dispatchers: list[Dispatcher])
server.listen(address: Address)
from slinn import Address
address = Address(port: int, host: str=None)
from slinn import Dispatcher
dispatcher = Dispatcher(hosts: list=None)
dispatcher.route(filter: Filter)
from slinn import Filter
_filter = Filter(filter: str, methods: list[str]=None)
_filter.check(text: str, method: str) -> bool
_filter.size(text: str, method: str) -> int # Special method for Smart Navigation
# LinkFilter inherits from Filter
from slinn import LinkFilter
link_filter = LinkFilter(filter: str, methods: list[str]=None)
link_filter.check(text: str, method: str) -> bool
# AnyFilter as same as Filter('.*')
from slinn import AnyFilter
from slinn import HttpResponse
http_response = HttpResponse(payload, data: list[tuple]=None, status: str='200 OK', content_type: str='text/plain')
http_response.set_cookie(key: str, value)
http_response.make(type: str='HTTP/2.0') -> str
# HttpAPIResponse inherits from HttpResponse
from slinn import HttpAPIResponse
http_api_response = HttpAPIResponse(payload, data: list[tuple]=None, status: str='200 OK', content_type: str='text/plain')
http_api_response.set_cookie(key: str, value)
http_api_response.make(type: str='HTTP/2.0') -> str
# HttpRedirect inherits from HttpResponse
from slinn import HttpRedirect
HttpRedirect(location: str)
from slinn import Request
Request(http_data: str, client_address: tuple[str, int])
Project details
Release history Release notifications | RSS feed
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.0.0.tar.gz
(12.9 kB
view details)
File details
Details for the file slinn-2.0.0.tar.gz.
File metadata
- Download URL: slinn-2.0.0.tar.gz
- Upload date:
- Size: 12.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
65740ecd2348beebdbf0f1f817d23c77b62dd4bf09eb1774bc432e45a3e9bba7
|
|
| MD5 |
c8bd222803f40d2362f5c84a8590eeb1
|
|
| BLAKE2b-256 |
63580561716dafa28321b9cdeae9d6454311a4991a72ec5116f1f6ede84547b7
|