fantix's recent timeline updates
fantix's repos on GitHub
Python · 74 watchers
gevent
Coroutine-based concurrency library for Python
Python · 56 watchers
aiocontextvars
Asyncio support for PEP-567 contextvars backport.
Shell · 6 watchers
ArchLinux-x32
This repo is migrated to repos under https://github.com/archlinux-x32
Python · 4 watchers
gen4
Gen3 Data Commons (EdgeDB PoC)
JavaScript · 4 watchers
pie
Python · 3 watchers
ArchRepo
Powers the Arch Linux unofficial user repositories
3 watchers
cookiecutter-fastapi-edgedb
Cookiecutter template for a FastAPI server using EdgeDB.
C · 3 watchers
guvcview
1 watchers
authlib-gino
OpenID Connect provider implemented with Authlib and GINO.
Python · 1 watchers
flask-admin
Simple and extensible administrative interface framework for Flask
1 watchers
hishel
An elegant HTTP Cache implementation for HTTPX and HTTP Core.
1 watchers
release-demo
0 watchers
.github
EdgeDB: The post-SQL database
Python · 0 watchers
aiohttp
HTTP client/server framework for asyncio
0 watchers
aiomysql
aiomysql is a library for accessing a MySQL database from the asyncio
Python · 0 watchers
aiozmq_router_to_router
0 watchers
anyio
High level compatibility layer for multiple asynchronous event loop implementations on Python
0 watchers
async-listen
A rust crate with various helpers for writing production-ready servers in rust using async-std
Rust · 0 watchers
async-tls
A TLS implementation over AsyncRead and AsyncWrite
Python · 0 watchers
asyncpg
A fast PostgreSQL Database Client Library for Python/asyncio.
Python · 0 watchers
asyncpgsa
A wrapper around asyncpg for use with sqlalchemy
Python · 0 watchers
authub
The hub software for user authentication.
0 watchers
awesome-asyncio
A curated list of awesome Python asyncio frameworks, libraries, software and resources
Python · 0 watchers
awesome-sqlalchemy
A curated list of awesome tools for SQLAlchemy
Python · 0 watchers
bench-serverless-python
Shell · 0 watchers
boot2docker
Lightweight Linux for Docker
Python · 0 watchers
bulletbot
Slack/IRC bot for logging, aggregating, and emailing daily tasks.
Python · 0 watchers
cdis-python-utils
utilities to ease python code development
Python · 0 watchers
cdiserrors
Error types to be shared between other systems
Python · 0 watchers
cdislogging
Python · 0 watchers
cdisutils
Utility modules for GDC functionality
Python · 0 watchers
cdisutils-test
Test data and reusable non-specific test code
Python · 0 watchers
cii
Shell · 0 watchers
cloud-automation
Automation for standing up Gen3 commons on AWS, GCP, Azure, and on-prem
HCL · 0 watchers
cloud-scripts
0 watchers
compio
A thread-per-core Rust runtime with IOCP/io_uring/polling.
PowerShell · 0 watchers
configure-pagefile-action
Set PageFileSize on GitHub Windows Hosted Agents
Python · 0 watchers
contextvars
PEP 567 Backport
0 watchers
core
MoonBit's standard library
Python · 0 watchers
cpython
The Python programming language
Python · 0 watchers
datamodelutils
wrapper utils to initialize datamodel from remote dictionary
Python · 0 watchers
django-workflow-demo
0 watchers
easy-edgedb
Python · 0 watchers
edgedb
The next generation object-relational database.
Shell · 0 watchers
edgedb-action
0 watchers
edgedb-cli
Command-line tools for edgedb
0 watchers
edgedb-docker
Official Docker Image packaging for EdgeDB
Python · 0 watchers
edgedb-docs
此仓已过时,请移步下面的链接:
Python · 0 watchers
edgedb-pkg
EdgeDB Release Packaging Toolkit
Python · 0 watchers
edgedb-python
EdgeDB Python Driver
0 watchers
edgedb-rust
EdgeDB Rust binding. WIP.
0 watchers
emoji
emoji terminal output for Python
0 watchers
emoji-cheat-sheet
A markdown version emoji cheat sheet
JavaScript · 0 watchers
essential-react
A minimal skeleton for building testable React apps using Babel
TypeScript · 0 watchers
fantix-workflow-py-demo
HTML · 0 watchers
fantix.github.io
0 watchers
fastapi
FastAPI framework, high performance, easy to learn, fast to code, ready for production
Python · 0 watchers
flask
The Python micro framework for building web applications.
Python · 0 watchers
flask-sqlalchemy
Adds SQLAlchemy support to Flask
Python · 0 watchers
gen3
Gen3 is how data commons are made.
HTML · 0 watchers
gino.fantix.pro
Rust · 0 watchers
green-rs
Green Tasks for Rust
C · 0 watchers
greenlet
Lightweight in-process concurrent programming
0 watchers
gulip
0 watchers
httptools
Fast HTTP parser
Python · 0 watchers
imdbench
IMDBench — Realistic ORM benchmarking
0 watchers
immutables
A high-performance immutable mapping type for Python.
Python · 0 watchers
indexd
Index service server
0 watchers
libpg_query
C library for accessing the PostgreSQL parser outside of the server environment
0 watchers
liburing
0 watchers
libuv
Cross-platform asynchronous I/O
0 watchers
llurl
Port of http_parser to llparse
Python · 0 watchers
metapkg
Multi-platform native package builder toolkit
Rust · 0 watchers
mio
Mini IO library for Rust
0 watchers
moon
The build system and package manager for MoonBit
Rust · 0 watchers
nix-rust
Rust friendly bindings to Posix APIs
Python · 0 watchers
pgbench
PostgreSQL Client Driver Performance Benchmarking Toolbench
Python · 0 watchers
pidgin
key value metadata service
0 watchers
poetry
Python dependency management and packaging made easy.
Python · 0 watchers
poetry-release-action
Dockerfile · 0 watchers
postgres-ssl-docker
Python · 0 watchers
psqlgraph
Library for graph-like storage in postgresql using sqlalchemy
Python · 0 watchers
psycopg2cffi
Port to cffi with some speed improvements
JavaScript · 0 watchers
pwa-module
⚡ Supercharge Nuxt with a heavily tested, updated and stable PWA solution
Python · 0 watchers
py-arcgis-ex1
Adopt Arcgis's python modules to do experiment for extracting the boundary cells
0 watchers
py-pgproto
Low-level IO utilities for PosgtreSQL drivers.
Python · 0 watchers
pyczmq
Python CZMQ bindings
Python · 0 watchers
pylint
It's not just a linter that annoys you!
Python · 0 watchers
python-beginners
Workshop material for "Introduction to Programming with Python"
Python · 0 watchers
pyzmq
PyZMQ: Python bindings for zeromq
Shell · 0 watchers
qemu-arm-image-builder
Shell scripts to build Linux images for QEMU ARM emulator
Dockerfile · 0 watchers
quay-test
0 watchers
rbac-client
Python · 0 watchers
release-helper
Python CLI to generate release notes by scanning a repo's pull requests descriptions
Shell · 0 watchers
repo
Arch Linux CN Repository
0 watchers
rfcs
RFCs for major changes to EdgeDB
Rust · 0 watchers
rust
a safe, concurrent, practical language
0 watchers
rust-native-tls
0 watchers
rust-tls-api
TLS API for Rust, and API implementations over native-tls and openssl in separate crates
0 watchers
rust-zmq
Rust zeromq bindings.
fantix

fantix

🏢  EdgeDB Inc. / Senior Software Engineer
V2EX member #56284, joined on 2014-02-19 14:47:17 +08:00
新项目再轮 asyncio 实现: kLoop
Python  •  fantix  •  Jun 15, 2022  •  Lastly replied by zepc007
18
graph-relational model 怎么翻译最合适?
数据库  •  fantix  •  Feb 23, 2022  •  Lastly replied by fantix
4
EdgeDB 1.0 正式发布
数据库  •  fantix  •  Feb 16, 2022  •  Lastly replied by fantix
45
fantix's recent replies
Jun 15, 2022
Replied to a topic by fantix Python 新项目再轮 asyncio 实现: kLoop
@mayli 我大概明白了,正如你说的,我也觉得应该是可以优化的[1],或者将来可以[2],就是可能写起来比较费劲。另外,作为抽象化的库,kLoop 我认为可以从两方面做批量优化:1 、单次主循环内批量操作:当 I/O 请求比较密集的时候,一次循环有机会批量提交处理几十上百个请求,每个请求可能都是由多个 SQE 链接实现,这样一次循环就能省几百 syscall ; 2 、提高抽象层级,直接做 HTTP 静态文件服务器[狗头]。以上还都是臆想,有待实现验证测评。

[1]: https://lwn.net/Articles/863071/
[2]: https://lwn.net/Articles/847951/
Jun 13, 2022
Replied to a topic by fantix Python 新项目再轮 asyncio 实现: kLoop
@mayli 好像可以创建一对 pipe ,先把 header 写进去,然后提交两个 splice(2) 任务(无须 link ?),一个连文件另一个连 socket 。这个不是 asyncio 层面的,但类似于计划中 kLoop 的 `loop.sendfile()` 实现,我还没试过,希望能帮上忙。
Jun 12, 2022
Replied to a topic by fantix Python 新项目再轮 asyncio 实现: kLoop
@haoliang 感谢夸奖! trio 是好东西,异常扔得特别干净

@14 嗯惭愧……那个 PR 确实拖了好几年才做完……
Jun 12, 2022
Replied to a topic by fantix Python 新项目再轮 asyncio 实现: kLoop
@mayli 感谢分享!我赞同您提到的三点:1 、直接使用 io_uring 或者甚至是包装过的 liburing 来做业务逻辑,编程体验并不直观; 2 、深度利用队列需要一定技巧,比如可能需要在 SQ 提交之前修改顺序,才能将需要链接的元素排在一起,因为目前链接功能只能把挨在一起的几个元素连起来; 3 、io_uring 并不提供流量控制功能,需要调用者自己搞。

需要为其他读到这里的同学澄清的是,这些在 kLoop 中属于实现细节,参与开发的同学确实需要面对底层接口的复杂性,以及处理好各种接口异常,比如用发送队列做重试以提供高阶流量控制等等;然而,对于 kLoop 使用者而言,这些复杂性应该是封装在统一的 asyncio 接口之下的,比如用户只需调用 `loop.sendfile()`,而不需要考虑这个操作实际上可能链接了多个 io_uring 任务,包括创建管道、两次 splice 来连接文件和网络,以及流量控制所需要的重试(还没实现,大致猜测),以最高效的方式利用 io_uring 来完成任务。
Jun 11, 2022
Replied to a topic by fantix Python 新项目再轮 asyncio 实现: kLoop
@lixile draw.io ,好像现在叫 diagrams.net ,可以脱机当本地应用使
有幸在本书成书后的开发阶段抢先阅读过,非常认同“基础编程素养”和“编程理念”的部分,结合案例讲技巧,非常值得收藏。
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5407 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 27ms · UTC 06:03 · PVG 14:03 · LAX 23:03 · JFK 02:03
♥ Do have faith in what you're doing.