推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
prasanta
V2EX  ›  Python

XWeb - 高性能异步 Web 框架。

  •  
  •   prasanta · Sep 29, 2018 · 2688 views
    This topic created in 2813 days ago, the information mentioned may be changed or developed.

    XWeb - 高性能异步 Web 框架。

    XWeb

    • 框架使用了高性能的 uvloop+httptools.
    • 框架全部采用 python3.6 后的异步 async await 语法.
    • 框架架构参考了 koa.js.

    优势

    • 高性能
    • 插件式
    • 全异步

    Hello World

    from xweb import App
    
    app = App()
    
    @app.use
    async def response(ctx):
        ctx.res.body = "Hello World"
    
    
    if __name__ == '__main__':
        app.listen(8000)
    

    koa.js 官方例子 xweb 版

    import time
    
    from xweb import App
    
    app = App()
    
    
    @app.use
    async def logger(ctx, fn):
        await fn()
        rt = ctx['X-Response-Time']
        print(rt)
    
    
    @app.use
    async def response_time(ctx, fn):
        start = time.time()
        await fn()
        usage = (time.time() - start) * 1000_000
        ctx['X-Response-Time'] = f'{usage:.0f}µs'
    
    
    @app.use
    async def response(ctx):
        ctx.res.body = "Hello World"
    
    
    if __name__ == '__main__':
        app.listen(8000)
    

    性能

    • 测试代码目录,为了公平,所有服务都启 4 个进程进行对。benchmarks/
    • 环境: iMac (Retina 4K, 21.5-inch, 2017), 3 GHz Intel Core i5, 8 GB 2400 MHz DDR4
    • 压测命令: wrk http://127.0.0.1:8000/ -c 100 -t 10 -d 10 -T 10

    Requests/Sec:

    • xweb 90000
    • vibora 90000
    • meinheld + wsgi 77000
    • sanic 50000

    规划(期待有兴趣的同学一起参与进来,创造全异步,高性能的 xweb 插件)

    参考 koa.js 的插件开发 xweb 对应的插件,比如

    • Body parser
    • Data validator
    • Router
    • Auth
    • 等等

    Github 地址

    XWeb

    5 replies    2018-10-27 15:14:55 +08:00
    KgM4gLtF0shViDH3
        1
    KgM4gLtF0shViDH3  
       Sep 29, 2018
    大佬又出现了
    hcheng
        2
    hcheng  
       Oct 2, 2018
    先前排膜拜一下大佬
    xpresslink
        3
    xpresslink  
       Oct 3, 2018
    谢谢楼主分享
    其实光这么一个祼框架速度再高也是虚的。

    计划有异步的 ORM 么?还是打算直接集成 sqlalchemy 之类的?
    模板系统是打算用现成的如 jinja2 或是 mako 之类的。
    还有 Session,cache 等
    如果没这些基础设施光快也没用啊。

    django 和 flask 之类的之所以流行主要是功能齐全,开发效率高。用 python 做 web 开发大多数都是运维项目或者管理后端之类的。要是真需速度就用 go 或 java 之类开发后端了,python 高并发下的靠谱程度还是差点儿。
    prasanta
        4
    prasanta  
    OP
       Oct 5, 2018
    @xpresslink 思想源于 koa.js. 你说的这些都会以插件的形式出现。
    xiubin
        5
    xiubin  
       Oct 27, 2018
    @prasanta #4 大佬书写的怎么样了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3021 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 06:40 · PVG 14:40 · LAX 23:40 · JFK 02:40
    ♥ Do have faith in what you're doing.