Metadata-Version: 2.4
Name: mindroom-nio
Version: 0.25.3
Summary: A Python Matrix client library, designed according to sans I/O principles.
Author-email: Damir Jelić <poljar@termina.org.uk>, Paarth Shah <mail@shahpaarth.com>
License: Internet Systems Consortium license
        ===================================
        
        Copyright (c) `2018`, `Damir Jelić <poljar@termina.org.uk>`
        
        Permission to use, copy, modify, and/or distribute this software for any purpose
        with or without fee is hereby granted, provided that the above copyright notice
        and this permission notice appear in all copies.
        
        THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
        REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
        FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
        INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
        OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
        TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
        THIS SOFTWARE.
        
Project-URL: Source, https://github.com/mindroom-ai/mindroom-nio
Project-URL: Documentation, https://matrix-nio.readthedocs.io/en/latest/
Requires-Python: >=3.10.0
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: aiohttp~=3.10
Requires-Dist: aiofiles~=24.1
Requires-Dist: h11~=0.14
Requires-Dist: h2~=4.0
Requires-Dist: jsonschema~=4.14
Requires-Dist: unpaddedbase64~=2.1
Requires-Dist: pycryptodome~=3.10
Requires-Dist: aiohttp-socks~=0.8
Provides-Extra: e2e
Requires-Dist: atomicwrites~=1.4; extra == "e2e"
Requires-Dist: cachetools~=5.3; extra == "e2e"
Requires-Dist: peewee~=3.14; extra == "e2e"
Requires-Dist: vodozemac~=0.9; extra == "e2e"
Provides-Extra: dev
Requires-Dist: mindroom-nio[e2e]; extra == "dev"
Requires-Dist: aioresponses~=0.7; extra == "dev"
Requires-Dist: hpack~=4.0; extra == "dev"
Requires-Dist: hyperframe~=6.0; extra == "dev"
Requires-Dist: hypothesis~=6.8; extra == "dev"
Requires-Dist: faker~=8.0; extra == "dev"
Requires-Dist: mypy~=1.11; extra == "dev"
Requires-Dist: mypy_extensions~=1.0; extra == "dev"
Requires-Dist: pre-commit; extra == "dev"
Requires-Dist: pytest~=8.2; extra == "dev"
Requires-Dist: pytest-asyncio~=0.24; extra == "dev"
Requires-Dist: pytest-aiohttp~=0.3; extra == "dev"
Requires-Dist: pytest-benchmark~=4.0; extra == "dev"
Requires-Dist: pytest-cov~=2.11; extra == "dev"
Requires-Dist: pytest-flake8~=1.2; extra == "dev"
Provides-Extra: docs
Requires-Dist: mindroom-nio[dev]; extra == "docs"
Requires-Dist: setuptools>=61.0; extra == "docs"
Requires-Dist: sphinx~=7.4; extra == "docs"
Requires-Dist: sphinx-autodoc-typehints~=2.1; extra == "docs"
Requires-Dist: sphinx_mdinclude>=0.5; extra == "docs"
Requires-Dist: sphinx_rtd_theme~=2.0; extra == "docs"
Dynamic: license-file

mindroom-nio
============

[![Build Status](https://img.shields.io/github/actions/workflow/status/mindroom-ai/mindroom-nio/tests.yml?branch=main&style=flat-square)](https://github.com/mindroom-ai/mindroom-nio/actions)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/mindroom-nio?style=flat-square)](https://pypi.org/project/mindroom-nio/)
[![codecov](https://img.shields.io/codecov/c/github/mindroom-ai/mindroom-nio/main.svg?style=flat-square)](https://codecov.io/gh/mindroom-ai/mindroom-nio)
[![license](https://img.shields.io/badge/license-ISC-blue.svg?style=flat-square)](https://github.com/mindroom-ai/mindroom-nio/blob/main/LICENSE.md)
[![Documentation Status](https://readthedocs.org/projects/matrix-nio/badge/?version=latest&style=flat-square)](https://matrix-nio.readthedocs.io/en/latest/?badge=latest)
[![#nio](https://img.shields.io/badge/matrix-%23nio:matrix.org-blue.svg?style=flat-square)](https://matrix.to/#/!JiiOHXrIUCtcOJsZCa:matrix.org?via=matrix.org&via=maunium.net&via=t2l.io)

This fork exists primarily because I need vodozemac-backed E2EE support for
[MindRoom](https://github.com/mindroom-ai/mindroom), which relies heavily on
nio. libolm is officially deprecated, and the `python-olm` wheels currently stop
at CPython 3.12, making the old dependency path a poor fit for newer Python
versions. This fork keeps that support, plus a small set of other useful
pending upstream PRs, available in a published package while upstream activity
is quiet. I would be happy to see the upstream project become active again and
reduce fork-specific maintenance over time.

mindroom-nio is a fork of nio, a multilayered [Matrix](https://matrix.org/)
client library. The distribution name is `mindroom-nio`; the Python import name
remains `nio`. The underlying base layer doesn't do any network IO on its own,
but on top of that is a full-fledged batteries-included asyncio layer using
[aiohttp](https://github.com/aio-libs/aiohttp/). File IO is only done if you
enable end-to-end encryption (E2EE).

Documentation
-------------

The full API documentation for nio can be found at
[https://matrix-nio.readthedocs.io](https://matrix-nio.readthedocs.io/en/latest/#api-documentation)

Features
--------

nio has most of the features you'd expect in a Matrix library, but it's still a work in progress.

- ✅ transparent end-to-end encryption (EE2E)
- ✅ encrypted file uploads & downloads
- ✅ space parents/children
- ✅ manual and emoji verification
- ✅ custom [authentication types](https://matrix.org/docs/spec/client_server/r0.6.0#id183)
- ✅ threading support
- ✅ well-integrated type system
- ✅ knocking, kick, ban and unban
- ✅ typing notifications
- ✅ message redaction
- ✅ token based login
- ✅ user registration
- ✅ read receipts
- ✅ live syncing
- ✅ `m.reaction`s
- ✅ `m.tag`s
- ❌ cross-signing support
- ❌ server-side key backups (room key backup, "Secure Backup")
- ❌ user deactivation ([#112](https://github.com/matrix-nio/matrix-nio/issues/112))
- ❌ in-room emoji verification

Installation
------------

To install mindroom-nio, simply use pip:

```bash
$ pip install mindroom-nio
```

Note that this installs mindroom-nio without end-to-end encryption support. The
e2ee enabled version can be installed using pip:

```bash
$ pip install "mindroom-nio[e2e]"
```

Additionally, a docker image with the e2ee enabled version of nio is provided in
the `docker/` directory.

Examples
--------

For examples of how to use nio, and how others are using it,
[read the docs](https://matrix-nio.readthedocs.io/en/latest/examples.html)
