freshcrate
Skin:/
Home > Frameworks > sniffio

sniffio

Sniff out which async library your code is running under

Why this rank:Strong adoptionRelease freshnessHealthy release cadence

Description

.. image:: https://img.shields.io/badge/chat-join%20now-blue.svg :target: https://gitter.im/python-trio/general :alt: Join chatroom .. image:: https://img.shields.io/badge/docs-read%20now-blue.svg :target: https://sniffio.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status .. image:: https://img.shields.io/pypi/v/sniffio.svg :target: https://pypi.org/project/sniffio :alt: Latest PyPi version .. image:: https://img.shields.io/conda/vn/conda-forge/sniffio.svg :target: https://anaconda.org/conda-forge/sniffio :alt: Latest conda-forge version .. image:: https://travis-ci.org/python-trio/sniffio.svg?branch=master :target: https://travis-ci.org/python-trio/sniffio :alt: Automated test status .. image:: https://codecov.io/gh/python-trio/sniffio/branch/master/graph/badge.svg :target: https://codecov.io/gh/python-trio/sniffio :alt: Test coverage ================================================================= sniffio: Sniff out which async library your code is running under ================================================================= You're writing a library. You've decided to be ambitious, and support multiple async I/O packages, like `Trio <https://trio.readthedocs.io>`__, and `asyncio <https://docs.python.org/3/library/asyncio.html>`__, and ... You've written a bunch of clever code to handle all the differences. But... how do you know *which* piece of clever code to run? This is a tiny package whose only purpose is to let you detect which async library your code is running under. * Documentation: https://sniffio.readthedocs.io * Bug tracker and source code: https://github.com/python-trio/sniffio * License: MIT or Apache License 2.0, your choice * Contributor guide: https://trio.readthedocs.io/en/latest/contributing.html * Code of conduct: Contributors are requested to follow our `code of conduct <https://trio.readthedocs.io/en/latest/code-of-conduct.html>`_ in all project spaces. This library is maintained by the Trio project, as a service to the async Python community as a whole. Quickstart ---------- .. code-block:: python3 from sniffio import current_async_library import trio import asyncio async def print_library(): library = current_async_library() print("This is:", library) # Prints "This is trio" trio.run(print_library) # Prints "This is asyncio" asyncio.run(print_library()) For more details, including how to add support to new async libraries, `please peruse our fine manual <https://sniffio.readthedocs.io>`__.

Release History

VersionChangesUrgencyDate
1.3.1Imported from PyPI (1.3.1)Low4/21/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
master@2026-03-06Latest activity on master branchLow3/6/2026
v1.3.1Tag v1.3.1Low2/25/2024
v1.3.0Tag v1.3.0Low9/1/2022
v1.2.0Tag v1.2.0Low10/11/2020
v1.1.0Tag v1.1.0Low4/20/2019
v1.0.0Tag v1.0.0Low8/1/2018

Dependencies & License Audit

Loading dependencies...

Similar Packages

greenbackReenter an async event loop from synchronous code1.3.0
python-socksProxy (SOCKS4, SOCKS5, HTTP CONNECT) client for Python2.8.1
trioA friendly Python library for async concurrency and I/O0.33.0
aiosmtplibasyncio SMTP clientv5.1.1
blockbusterUtility to detect blocking calls in the async event loop1.5.26

More from pypi

markitdownUtility tool for converting various files to Markdown
fastapiFastAPI framework, high performance, easy to learn, fast to code, ready for production
djangoA high-level Python web framework that encourages rapid development and clean, pragmatic design.
flaskA simple framework for building complex web applications.

More in Frameworks

spec_driven_developSpec-Driven Develop is a platform-agnostic AI agent skill that automates the pre-development workflow for large-scale complex tasks. It is not a framework, not a runtime, not a package manager — it is
deer-flowAn open-source long-horizon SuperAgent harness that researches, codes, and creates. With the help of sandboxes, memories, tools, skill, subagents and message gateway, it handles different levels of ta
tqdmFast, Extensible Progress Meter
simBuild, deploy, and orchestrate AI agents. Sim is the central intelligence layer for your AI workforce.