Skip to main content

lightweight web framework

Project description

fly

python pypi

fly is lightweight web application framework. This is a library with Python, but all the core parts of the server are implemented in C language to speed up.

  • Event driven architecture. (non-blocking network I/O)

  • Usable as Web server and Application server.

  • Lightweight and fast.

  • Since fly as a server by itself, there is no need to prepare a WSGI server or ASGI server.

fly currently supports the following platforms.

Python Linux macOS FreeBSD
3.6 Test Test -
3.7 Test Test Test
3.8 Test Test Test
3.9 Test Test Test
3.10 Test Test Test

Install

$ pip install fly-server

Hello World

It is so easy to use fly.

  1. import fly and make fly instance.

  2. mount directory and registery route.(option)

  3. run fly.

from fly import Fly

app = Fly()

@app.get("/")
def index(request):
    return "Hello, fly!"
$ fly app.py
Result

    * fly Running on 0.0.0.0:1234 (Press CTRL+C to quit)
    * fly 1 workers
    * Application file: /home/user/app.py
    * Log to stdout: on
    * Log to stderr: off
    * Backlog count: 1024
    * Max response content length: 1048576
    * Max request content length: 1048576
    * Index path: index.html
    * SSL: False
    * Log directory path: -
    * Mount paths (/home/user/mnt,/home/user/mnt2)
        - /home/user/mnt: files 2, mount_number 0
        - /home/user/mnt2: files 0, mount_number 1


mount vs route
  • mount: use for static content(css, html, js)

  • route: use for dynamic content(like CGI)

Why fly ?

Interface of fly is as simple as possible. Extracted only the necessary parts as Web framework by referring to various Python web frameworks.

But, a core part of fly is implemented by C language, you can't think of it as Python Web framework.

So, if you're looking for flexible and fast Web framework, should use fly.

How fast ?

look at the result of benchmark.

HTTP version

HTTP1.1, HTTP1.1 over TLS/SSL, HTTP2 over TLS/SSL.

Contributing

Let's coding.

  1. Fork fly.
  2. Create a feature branch. (git checkout -b new-feature)
  3. Commit your changes. (git commit -m explain of commit)
  4. Push to the bench. (git push origin my-new-feature)
  5. Create new pull request.

Dependencies

  • Python >= 3.6

  • Openssl >= 1.1.11

  • Zlib >= 1.2.11

  • libbrotli(Optional) >= 1.0.9

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

fly-server-1.4.0.tar.gz (3.6 MB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page