Threadsnake is an experimental server side library. It was created as an educational (self-educational) project in order to explain how does HTTP/1.1 works (I'm lying, it was to understand it).
import asyncio
from threadsnake.turbo import Application, HttpRequest, HttpResponse
app = Application(8080)
@app.get('/')
def main(app:Application, req:HttpRequest, res:HttpResponse):
res.end('Served by threadsnake!')
asyncio.run(app.run())
The previous example sets a server wich listens at port 8080 and responds to every get resquest to the path /
Threadsnake is designed to be lightweight and simple, yet able to serve hypertext and other resources sucessfully. Futhermore, as it was build over the The Python Standard Library, it has no third party dependencies.
As I said, threadsnake is an academic project, not intended to be used as an fully production tool. However, it actually has some interesting capacities out of the box:
...And much more. In fact, I'm compiling a lot of examples in order to show how can you use all those options to make a feature-rich and fully functional web server.
The main way to get threadsnake is using pip:
pip install threadsnake
If you did it well, the python package manager will download and install threadsnake on your system. If not, well... That means something went wrong. Check this link in order to solve the pip installation method. Those other links may be helpful:
Yes, i know it's redundant, but you always can go to pypi and download the package directly (The 'directly' part is the actual link to pypi. However, as all we know, we feel more comfortable by clicking the literal link, so, here you have it: https://pypi.org/project/threadsnake/#files).
If Murphy is obsessed with you (Seriously, if you're still reading, it have to be true) and all the above fails, then you have no option than going to the repository at github.
Wow... You're still reading. You have to be some sort of... Anime Archetype.
Well, as you can see right now we lack of a proper documentation. You have to understand, it's a new and small project. That said, once I finish uploading the examples, I'm planning to publish the documentation in this link and the bugs tracking to this other link. Till then... you know. Don't let your dreams be dreams. JU5T D0 1T (I don't know anything about trademarks, so i wrote the phrase that way cause i don't want that ancient-greek sneakers-maker goddess to get mad at me).