V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
abersheeran
V2EX  ›  程序员

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

  abersheeran · 2024-04-01 09:41:38 +08:00 · 9631 次点击
这是一个创建于 365 天前的主题,其中的信息可能已经有所发展或是发生改变。
非常开心。自从几年前,我在 V2EX 发帖获得灵感发布 cool 之后,这是第二个个人捐助来感谢我对开源所做出的贡献的。

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

https://donate.aber.sh/

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

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

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