V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
abersheeran
V2EX  ›  程序员

fastapi 作者 Sebastián Ramírez 向我捐助了 1000 美金

  abersheeran ·
abersheeran · 28 天前 · 8507 次点击
非常开心。自从几年前,我在 V2EX 发帖获得灵感发布 cool 之后,这是第二个个人捐助来感谢我对开源所做出的贡献的。

连夜把两位记录在了我的网站上。第一笔是来自支付宝,我不好挂他支付宝,所以就不放出用户名了。但由于是来自于 cool 的感谢,我猜应该也是 V2EX 上的用户,如果你愿意让我在我的网站关联到你的 GitHub ,请通过那个支付宝账号告诉我。

https://donate.aber.sh/

感动落泪,最近工作忙,代码写的不多。
第 1 条附言  ·  28 天前
我是 encode 组织的 member ,在主要在 uvicorn 、starlette 两个仓库比较活跃,有不少 commit 和 review ,也在 httpx 之类的有少量贡献。这次 tiangolo 主要是感谢我对 uvicorn 、starlette 这两个与 fastapi 关联十分密切的仓库做出的贡献。

至于我个人的仓库,a2wsgi 算是用户量最大的一个,用于 WSGI 和 ASGI 协议的互转换,对小白用户来解释就是:现在所有在 starlette/fastapi 或者 uvicorn 里跑 flask 、django 都是用的我这个库。

其他库,与 fastapi 这次捐助无关,就不多做介绍了。评论区提到的 web 框架 https://kui.aber.sh/ ,主要用户是我现在的公司新项目和几个朋友。和 fastapi 算竞品,在 V2EX 也发过较多相关帖子就不多说了。除了有很多人体工程的优化以外,相比一众支持类型注释的 web 框架来说最大的优势就是 kui 支持原生 WSGI ,你可以把它跟 gevent 一起用。比起 asyncio 线程池的做法,性能要更好,生态也更好。

第一次收到捐助的库 cool 是一个语法糖库,提供了一个优雅的 Python 管道用法,具体可以看 https://github.com/abersheeran/cool
36 条回复    2024-04-02 14:47:02 +08:00
ramirezyolis808
    1
ramirezyolis808  
   28 天前
🎉
lozzow
    2
lozzow  
   28 天前
@ramirezyolis808 你这个头像给我瞬间看傻了,以为被爆头
kevinmissu
    3
kevinmissu  
   28 天前
恭喜
beneo
    4
beneo  
   28 天前
所以你做了什么?
limyel
    5
limyel  
   28 天前
@beneo OP 好像是写了一个 Python 实现的 web 框架吧
beneo
    6
beneo  
   28 天前
@limyel fastapi 不也是 web 框架么?
Belmode
    7
Belmode  
   28 天前
OP 可以好好地介绍一下自己,搞不好还能再收获一波
abersheeran
    8
abersheeran  
OP
   28 天前
@Belmode #7 感谢建议。
cruzzz
    9
cruzzz  
   28 天前
哭泣~ 撒花!
sunshower
    10
sunshower  
   28 天前 via Android
看完附言感觉还是要重新组织语言,感觉你激动到思维混乱了
lambdaq
    11
lambdaq  
   28 天前
排面
djasdjds
    12
djasdjds  
   28 天前
我去,刚好去年被 starlette 的一个问题头疼,楼主解答下吗,fastapi 无法在中间件里面获取 request body 和 form ,如果在中间件获取,再次调用会卡住,github issues 里有人也提过,starlette 在去年更新了,将 body 改成了一个缓存,可以在中间件里调用而不会再次调用卡死了,但是我发现 form 表单并没有做缓存处理,还有上面的卡主问题,你知道这部分改动的设计吗,后续还会变动不,虽然官方并不建议在中间件里获取 body
SuperTommy666
    13
SuperTommy666  
   28 天前
tql
abersheeran
    14
abersheeran  
OP
   28 天前 via Android
@sunshower 哈哈哈,这几天工作特别忙,所以尽快发完去开会了。
abersheeran
    15
abersheeran  
OP
   28 天前 via Android
@djasdjds 这是 Starlette 的设计理念导致的,我曾经试图解决过,无果,相关的有很多 PR ,大家都在努力,但是目前也依旧有很多问题。fastapi 的中间件先天残废,用 Depends 代替吧。如果你真的很需要中间件功能,可以试试 kui 。
oneisall8955
    16
oneisall8955  
   28 天前 via Android
恭喜恭喜
anoyi
    17
anoyi  
   28 天前
@djasdjds 其他语言的 Web 框架也都是这样,需要开发人员自己解决多次获取 Request Body 的情况
liuweiqing
    18
liuweiqing  
   28 天前
很厉害
abersheeran
    19
abersheeran  
OP
   28 天前
@anoyi #17 bottle 或者 django 都是有缓存的,kui 也参考了他们的设计做了缓存。Starlette/fastapi 不能解决它主要是因为,他们想把每个 Route 都做成独立的 ASGI 服务,要兼顾 ASGI 标准,就很难做到缓存 Request Body 。我上面提到的几个框架,都没有这么设计,所以可以做自己的缓存。

我个人觉得 Starlette 这么设计是可以的,baize 也大量参考了它的设计,这么做了。但是 fastapi 基于 Starlette 做生产级框架,那不应该让开发人员接触到这么底层的东西。
neochen13
    20
neochen13  
   28 天前
很感动,太难了,开源
nullboy
    21
nullboy  
   28 天前
想要看懂 op 的意思,还得用 AI 给我分析了一把....
crackidz
    22
crackidz  
   28 天前
大佬牛的牛的
abersheeran
    23
abersheeran  
OP
   28 天前
@nullboy #21 哈哈哈,上午急着去开会写的,可能比较乱。本来也不是正式推广什么的,随便写写了,大家也随便看看不用太深究这帖子说的专业方向的内容。

主要是分享一下我的喜悦,以及对 tiangolo 的感谢。这一部分应该是表达清楚了的。
djasdjds
    24
djasdjds  
   28 天前
@abersheeran #19 嗯,当时追踪这个看到 19 年就很多人提了 issues ,去年看的 Starlette 对 body 做了缓存以为解决了,没想到项目里有个地方用了 form 还是无法用新版本的 fastapi 解决这个问题,只能规避下自己做缓存消费😅
Woodywuuu
    25
Woodywuuu  
   28 天前
大佬牛的
godwinma
    26
godwinma  
   28 天前
大佬 666
elseswitch
    27
elseswitch  
   28 天前
感谢分享
rancc
    28
rancc  
   28 天前
恭喜
bugcoder
    29
bugcoder  
   28 天前
大佬牛的,向你学习
x2ve
    30
x2ve  
   28 天前 via iPhone
牛啊 fastapi 也好用
Dragonphy
    31
Dragonphy  
   27 天前
看了 OP 的博客,还是个文艺青年,已关注👀
llsquaer
    32
llsquaer  
   27 天前
好几年前,看过楼主说的管道用法,当时我还在想啥管道用法 ,进去一看,原来是 棍 的用法。 哈哈,当时就觉得思路新奇,但是没用过
knightgao2
    33
knightgao2  
   27 天前
大佬,抓
karott7
    34
karott7  
   27 天前
恭喜
Sayuri
    35
Sayuri  
   27 天前
需要结汇到国内的话可以联系我哦。
tg base64: QHl1enVyaXNhCg==
HowardChan
    36
HowardChan  
   27 天前
最近在研究 Langchain 也发现了它通过重写类的魔法方法__or__来实现管道,觉得好有意思。等有时间研究一下 OP 的这个 cool 。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1265 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 26ms · UTC 23:31 · PVG 07:31 · LAX 16:31 · JFK 19:31
Developed with CodeLauncher
♥ Do have faith in what you're doing.