RFC 6555中描述的Happy Eyeballs算法的Python实现。
项目描述
Python中的Happy Eyeballs(RFC 6555)
同步Python实现RFC 6555中描述的Happy Eyeballs算法。提供了一个文件和简单的API,以便轻松集成到其他项目中。
摘要
当一个服务器的IPv4路径和协议正常工作,但服务器的IPv6路径和协议不正常工作时,与仅使用IPv4的客户端相比,双栈客户端应用程序将经历显著的连接延迟。这是不可取的,因为它会导致双栈客户端的用户体验变差。本文件规定了减少这种用户可见延迟的算法要求,并提供了算法。
安装
$ python -m pip install rfc6555
使用
rfc6555模块的主要API是通过rfc6555.create_connection()
实现的,其功能与socket.create_connection()
相同,参数也相同。如果RFC 6555不受支持(例如在无法使用IPv6的平台)或者通过设置rfc6555.RFC6555_ENABLED
为False
来禁用RFC 6555,该函数将自动回退到调用socket.create_connection()
。
重要:默认情况下,缓存不是线程安全的。如果您需要线程安全的缓存,应该创建自己的rfc6555._RFC6555CacheManager
对象实现,并分配给rfc6555.cache
。
import rfc6555 sock = rfc6555.create_connection(('www.google.com', 80), timeout=10, source_address=('::1', 0)) # This will disable the Happy Eyeballs algorithm for future # calls to create_connection() rfc6555.RFC6555_ENABLED = False # Use this to set a different duration for cache entries. rfc6555.cache.validity_duration = 10 # 10 second validity time. # Use this to disable caching. rfc6555.cache.enabled = False
支持
此模块支持Python 2.7或更高版本,并支持所有主要平台。此外,如果您已安装selectors2>=2.0.0,此模块还将支持Jython,除了CPython。
许可证
rfc6555
软件包是在Apache-2.0许可证下发布的。
有关更多信息,请参阅LICENSE文件中的完整许可证文本。
变更日志
0.1.0
对于Python 3.5及以上版本,使用
selectors
代替selectors2
。弃用了对Python 2.6、3.3和3.4的支持。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。
源代码分发
构建分发
rfc6555-0.1.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 123905b8f68e2bec0c15f321998a262b27e2eaadea29a28bd270021ada411b67 |
|
MD5 | 99fd2e4f638151275c9874af18ddc4df |
|
BLAKE2b-256 | f64b24f953c3682c134e4d0f83c7be5ede44c6c653f7d2c0b06ebb3b117f005a |
rfc6555-0.1.0-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a9638af14b3aab41c9137900be8e7e9200039d44ed91408d6aef69b7dd5329da |
|
MD5 | 9e322968513e2381b1d4a2f7f387a46c |
|
BLAKE2b-256 | c5e2abacd204a910234ecae3134fd84fce75e3f346277e92a508eb963c18b764 |