An easy-to-use high-performance asynchronous web framework.

Overview

中文 | English

Github Action Test Codecov

Publish PyPi PyPI Downloads

PyPI - Python Version

一个易用的高性能异步 web 框架。

Index.py 文档


Index.py 实现了 ASGI3 接口,并使用 Radix Tree 进行路由查找。是最快的 Python web 框架之一。一切特性都服务于快速开发高性能的 Web 服务。

  • 大量正确的类型注释
  • 灵活且高效的路由系统
  • 可视化 API 接口与在线调试
  • 支持 Server-sent events 与 WebSocket
  • 自带一键部署命令 (基于 uvicorn 与 gunicorn)
  • 可使用任何可用的 ASGI 生态

Install

pip install -U index.py

或者直接从 Github 上安装最新版本(不稳定)

pip install -U git+https://github.com/abersheeran/[email protected]

中国大陆内的用户可从 Gitee 上的镜像仓库拉取

pip install -U git+https://gitee.com/abersheeran/[email protected]
Issues
  • Swagger reload

    Swagger reload

    opened by leng-yue 1
  • Add a bug test case

    Add a bug test case

    opened by leng-yue 1
  • Add cors middleware

    Add cors middleware

    Closed #40

    opened by abersheeran 1
  • OPTIONS 请求会返回 HTTP 416 错误

    OPTIONS 请求会返回 HTTP 416 错误

    Minimum Example

    from indexpy import Index, Body
    
    app = Index()
    
    @app.router.http.post("/")
    def test(param: str = Body()):
        return dict(error=param)
    
    bug Todo 
    opened by leng-yue 1
  • Route extensions

    Route extensions

    Clearly distinguish between built-in routing and extended routing.

    opened by abersheeran 1
  • Closed #37

    Closed #37

    opened by abersheeran 1
  • 更友好的固定路由与动态路由冲突解决

    更友好的固定路由与动态路由冲突解决

    当固定路由与动态路由冲突时,如果预测动态路由会先匹配则直接抛出错误,如果预测固定路由先匹配,则如故。

    Todo 
    opened by abersheeran 1
  • Add http status code library

    Add http status code library

    opened by leng-yue 1
  • 使用 BaíZé 重构

    使用 BaíZé 重构

    由于 Starlette 本身现在更像是一个框架而不是一个工具箱,并且 encode 团队似乎没有太多的时间维护这个框架,更多的精力都在 httpx 上。所以直接放弃使用 Starlette,转而使用 BaíZé 进行重构。除部分响应类外,大部分接口仍然可以保持一致。并且相较于 Starlette,BaíZé 有更丰富的功能支持,比如文件响应允许分片、更加完善的响应类泛型。

    Todo 
    opened by abersheeran 1
  • Add english document

    Add english document

    opened by leng-yue 0
  • 使 FileRoutes 支持函数

    使 FileRoutes 支持函数

    使用类固然使局部代码更加紧凑,但是也牺牲了使用的便捷性。遂决定增加使用的函数的注册方式,原有注册方式保持不变。

    *.py 文件中未寻找到 HTTP 对象,则寻找如下名称的函数作为对应 HTTP 请求方法的处理函数:"get", "post", "put", "patch", "delete", "head", "options", "trace"。这意味着使用时不需要继承 indexpy.HttpView,直接定义一个名为 get 的异步函数即可处理请求。

    在内部代码里,使用 MultimethodRoutes 同等方式,合并多个函数到一个类中。

    Todo 
    opened by abersheeran 0
  • English documentation

    English documentation

    Translate Chinese documents to English and deploy.

    documentation 
    opened by abersheeran 2
  • 新手教程

    新手教程

    使用 index.py 编写一个网站,用作新手教程。

    documentation 
    opened by abersheeran 2
Owner
Aber
明道若昧 进道若退 夷道若颣
Aber
Web APIs for Django. 🎸

Django REST framework Awesome web-browsable Web APIs. Full documentation for the project is available at https://www.django-rest-framework.org/. Fundi

Encode 22k Oct 15, 2021
The no-nonsense, minimalist REST and app backend framework for Python developers, with a focus on reliability, correctness, and performance at scale.

The Falcon Web Framework Falcon is a reliable, high-performance Python web framework for building large-scale app backends and microservices. It encou

Falconry 8.6k Oct 21, 2021
FastAPI framework, high performance, easy to learn, fast to code, ready for production

FastAPI framework, high performance, easy to learn, fast to code, ready for production Documentation: https://fastapi.tiangolo.com Source Code: https:

Sebastián Ramírez 37.2k Oct 23, 2021
Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed.

Tornado Web Server Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed. By using non-blocking ne

null 20.2k Oct 22, 2021
Screaming-fast Python 3.5+ HTTP toolkit integrated with pipelining HTTP server based on uvloop and picohttpparser.

Japronto! There is no new project development happening at the moment, but it's not abandoned either. Pull requests and new maintainers are welcome. I

Paweł Piotr Przeradowski 8.5k Oct 21, 2021
A very simple asynchronous wrapper that allows you to get access to the Oracle database in asyncio programs.

cx_Oracle_async A very simple asynchronous wrapper that allows you to get access to the Oracle database in asyncio programs. Easy to use , buy may not

null 30 Sep 18, 2021
Asynchronous HTTP client/server framework for asyncio and Python

Async http client/server framework Key Features Supports both client and server side of HTTP protocol. Supports both client and server Web-Sockets out

aio-libs 11.8k Oct 23, 2021
Sierra is a lightweight Python framework for building and integrating web applications

A lightweight Python framework for building and Integrating Web Applications. Sierra is a Python3 library for building and integrating web applications with HTML and CSS using simple enough syntax. You can develop your web applications with Python, taking advantage of its functionalities and integrating them to the fullest.

null 74 Oct 8, 2021
An easy-to-use high-performance asynchronous web framework.

An easy-to-use high-performance asynchronous web framework.

Aber 242 Oct 14, 2021
An easy-to-use high-performance asynchronous web framework.

中文 | English 一个易用的高性能异步 web 框架。 Index.py 文档 Index.py 实现了 ASGI3 接口,并使用 Radix Tree 进行路由查找。是最快的 Python web 框架之一。一切特性都服务于快速开发高性能的 Web 服务。 大量正确的类型注释 灵活且高效的

Index.py 243 Oct 15, 2021
Fast, asynchronous and elegant Python web framework.

Warning: This project is being completely re-written. If you're curious about the progress, reach me on Slack. Vibora is a fast, asynchronous and eleg

vibora.io 5.7k Oct 15, 2021
WebSocket and WAMP in Python for Twisted and asyncio

Autobahn|Python WebSocket & WAMP for Python on Twisted and asyncio. Quick Links: Source Code - Documentation - WebSocket Examples - WAMP Examples Comm

Crossbar.io 2.3k Oct 12, 2021
Appier is an object-oriented Python web framework built for super fast app development.

Joyful Python Web App development Appier is an object-oriented Python web framework built for super fast app development. It's as lightweight as possi

Hive Solutions 116 Oct 2, 2021
Django Ninja - Fast Django REST Framework

Django Ninja is a web framework for building APIs with Django and Python 3.6+ type hints.

Vitaliy Kucheryaviy 1.6k Oct 23, 2021
The Modern And Developer Centric Python Web Framework. Be sure to read the documentation and join the Slack channel questions: http://slack.masoniteproject.com

NOTE: Masonite 2.3 is no longer compatible with the masonite-cli tool. Please uninstall that by running pip uninstall masonite-cli. If you do not unin

Masonite 1.7k Oct 23, 2021
A micro web-framework using asyncio coroutines and chained middleware.

Growler master ' dev Growler is a web framework built atop asyncio, the asynchronous library described in PEP 3156 and added to the standard library i

null 686 Aug 12, 2021
cirrina is an opinionated asynchronous web framework based on aiohttp

cirrina cirrina is an opinionated asynchronous web framework based on aiohttp. Features: HTTP Server Websocket Server JSON RPC Server Shared sessions

André Roth 31 Oct 9, 2021
The little ASGI framework that shines. ?

✨ The little ASGI framework that shines. ✨ Documentation: https://www.starlette.io/ Community: https://discuss.encode.io/c/starlette Starlette Starlet

Encode 6.2k Oct 24, 2021
A familiar HTTP Service Framework for Python.

Responder: a familiar HTTP Service Framework for Python Powered by Starlette. That async declaration is optional. View documentation. This gets you a

Taoufik 3.6k Oct 15, 2021