Metadata-Version: 2.1
Name: matrix-nio
Version: 0.19.0
Summary: A Python Matrix client library, designed according to sans I/O principles.
Home-page: https://github.com/poljar/matrix-nio
License: ISC
Author: Damir Jelić
Author-email: poljar@termina.org.uk
Requires-Python: >=3.6.1,<4.0.0
Classifier: License :: OSI Approved
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Provides-Extra: e2e
Requires-Dist: aiofiles (>=0.6.0,<0.7.0)
Requires-Dist: aiohttp (>=3.7.4,<4.0.0)
Requires-Dist: aiohttp-socks (>=0.7.0,<0.8.0)
Requires-Dist: atomicwrites (>=1.4.0,<2.0.0); extra == "e2e"
Requires-Dist: cachetools (>=4.2.1,<5.0.0); extra == "e2e"
Requires-Dist: dataclasses (>=0.7,<0.8); python_version >= "3.6" and python_version < "3.7"
Requires-Dist: future (>=0.18.2,<0.19.0)
Requires-Dist: h11 (>=0.12.0,<0.13.0)
Requires-Dist: h2 (>=4.0.0,<5.0.0)
Requires-Dist: jsonschema (>=3.2.0,<4.0.0)
Requires-Dist: logbook (>=1.5.3,<2.0.0)
Requires-Dist: peewee (>=3.14.4,<4.0.0); extra == "e2e"
Requires-Dist: pycryptodome (>=3.10.1,<4.0.0)
Requires-Dist: python-olm (>=3.1.3,<4.0.0); extra == "e2e"
Requires-Dist: unpaddedbase64 (>=2.1.0,<3.0.0)
Project-URL: Documentation, https://matrix-nio.readthedocs.io/en/latest/
Project-URL: Repository, https://github.com/poljar/matrix-nio
Description-Content-Type: text/markdown

nio
===

[![Build Status](https://img.shields.io/github/workflow/status/poljar/matrix-nio/Build%20Status?style=flat-square)](https://github.com/poljar/matrix-nio/actions)
[![codecov](https://img.shields.io/codecov/c/github/poljar/matrix-nio/master.svg?style=flat-square)](https://codecov.io/gh/poljar/matrix-nio)
[![license](https://img.shields.io/badge/license-ISC-blue.svg?style=flat-square)](https://github.com/poljar/matrix-nio/blob/master/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)

nio is a multilayered [Matrix](https://matrix.org/) client library. 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
- ✅ manual and emoji verification
- ✅ custom [authentication types](https://matrix.org/docs/spec/client_server/r0.6.0#id183)
- ✅ well-integrated type system
- ✅ kick, ban and unban
- ✅ typing notifications
- ✅ message redaction
- ✅ token based login
- ✅ user registration
- ✅ read receipts
- ✅ live syncing
- ✅ `m.tag`s
- ❌ python 2.7 support
- ❌ cross-signing support
- ❌ user deactivation ([#112](https://github.com/poljar/matrix-nio/issues/112))
- ❌ in-room emoji verification
- ❌ room upgrades and `m.room.tombstone` events ([#47](https://github.com/poljar/matrix-nio/issues/47))

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

To install nio, simply use pip:

```bash
$ pip install matrix-nio

```

Note that this installs nio without end-to-end encryption support. For e2ee
support, python-olm is needed which requires the
[libolm](https://gitlab.matrix.org/matrix-org/olm) C library (version 3.x).
On Debian and Ubuntu one can use `apt-get` to install package `libolm-dev`.
On Fedora one can use `dnf` to install package `libolm-devel`.
On MacOS one can use [brew](https://brew.sh/) to install package `libolm`.
Make sure version 3 is installed.

After libolm has been installed, the e2ee enabled version of nio can be
installed using pip:

```bash
$ pip install "matrix-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)

