Skip to main content

A tiny experimental server-side express-like library

Project description

Threadsnake

Threadsnake is an experimental ser ver 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).

from threadsnake.core import *

app = Application(get_port(80))

@app.get('/')
def main(app:Application, req:HttpRequest, res:HttpResponse):
    res.end('Served by threadsnake!')

app.wait_exit('Press [Enter] to exit...')

The previous example sets a server wich listens at port 80 (or the next available) 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.

Features

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.

Installing threadsnake

Installing through pip

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:

Downloading from Pypi

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).

Downloading from the repository ...if still here

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.

Documentation and Issues

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).

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

threadsnake-0.0.19.tar.gz (51.3 kB view details)

Uploaded Source

Built Distribution

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

threadsnake-0.0.19-py3-none-any.whl (54.9 kB view details)

Uploaded Python 3

File details

Details for the file threadsnake-0.0.19.tar.gz.

File metadata

  • Download URL: threadsnake-0.0.19.tar.gz
  • Upload date:
  • Size: 51.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.2

File hashes

Hashes for threadsnake-0.0.19.tar.gz
Algorithm Hash digest
SHA256 bf2986409628a2e0fb1ee09bf73648e2777164874147d2838f11b39a63b60868
MD5 f22658ddd7e1f620da78d57fc9e1312e
BLAKE2b-256 f1986c385a918389b1e3fa83c444812fe92a7e89c5a79d9be1d94d28e788a444

See more details on using hashes here.

File details

Details for the file threadsnake-0.0.19-py3-none-any.whl.

File metadata

  • Download URL: threadsnake-0.0.19-py3-none-any.whl
  • Upload date:
  • Size: 54.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.2

File hashes

Hashes for threadsnake-0.0.19-py3-none-any.whl
Algorithm Hash digest
SHA256 6d5fb1667da08ea1fc953ae0c276b57a4a3308be7296cca4be0e3e0ffb40133f
MD5 fcefd6ef9f63e39f00e64b8888c1d63f
BLAKE2b-256 52a0326e66f578043558824e8c90a2e7c2e5e74ffb035458c84452a29da5b5b4

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