All Projects → tatsuya4649 → fly

tatsuya4649 / fly

Licence: MIT license
Lightweight Python Web framework

Programming Languages

c
50402 projects - #5 most used programming language
python
139335 projects - #7 most used programming language
M4
1887 projects

Projects that are alternatives of or similar to fly

Ninja
Ninja is a full stack web framework for Java. Rock solid, fast and super productive.
Stars: ✭ 1,892 (+11029.41%)
Mutual labels:  webframework
mango
mango is a powerful and simple golang web framework
Stars: ✭ 20 (+17.65%)
Mutual labels:  webframework
firmeve
a out-of-the-box, full-featured go framework supporting http, http2, websocket, tcp, udp, rpc and microservice
Stars: ✭ 36 (+111.76%)
Mutual labels:  webframework
Alpas
🚀 The Rapid and Delightful Kotlin Web Framework. Easy, elegant, and productive!
Stars: ✭ 166 (+876.47%)
Mutual labels:  webframework
Golf
⛳️ The Golf web framework
Stars: ✭ 248 (+1358.82%)
Mutual labels:  webframework
nim-servy
Servy is a fast, simple and lightweight micro web-framework for Nim
Stars: ✭ 30 (+76.47%)
Mutual labels:  webframework
Gotham
A flexible web framework that promotes stability, safety, security and speed.
Stars: ✭ 1,935 (+11282.35%)
Mutual labels:  webframework
Teapot
Teapot micro web framework for Pharo Smalltalk
Stars: ✭ 86 (+405.88%)
Mutual labels:  webframework
GCMS
PHP FASTEST CMS with Ajax support
Stars: ✭ 19 (+11.76%)
Mutual labels:  webframework
presley
Presley - A lightweight web framework for Windows
Stars: ✭ 26 (+52.94%)
Mutual labels:  webframework
Closp
Clojure template for web development (with SPA support)
Stars: ✭ 173 (+917.65%)
Mutual labels:  webframework
Frappejs
Node + Electron + Vue based metadata web framework (inspired by Frappe)
Stars: ✭ 214 (+1158.82%)
Mutual labels:  webframework
tsukuyomi
Asynchronous Web framework for Rust
Stars: ✭ 81 (+376.47%)
Mutual labels:  webframework
Webgo
A minimal framework to build web apps; with handler chaining, middleware support; and most of all standard library compliant HTTP handlers(i.e. http.HandlerFunc).
Stars: ✭ 165 (+870.59%)
Mutual labels:  webframework
sitefox
Node + cljs backend web framework
Stars: ✭ 180 (+958.82%)
Mutual labels:  webframework
Webcontext
webcontext is a web framework and web application server based on node.js
Stars: ✭ 151 (+788.24%)
Mutual labels:  webframework
webfr
moved to: https://github.com/godzillaframework/godzilla.git
Stars: ✭ 13 (-23.53%)
Mutual labels:  webframework
sgo
A simple, light and fast Web framework written in Go.
Stars: ✭ 75 (+341.18%)
Mutual labels:  webframework
flask-empty-api
AZAP Flask boilerplate for creating API's with flask.
Stars: ✭ 15 (-11.76%)
Mutual labels:  webframework
godzilla
a powerful go web framework
Stars: ✭ 22 (+29.41%)
Mutual labels:  webframework

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].