nio
nio is a multilayered Matrix 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. 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
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
- ✅ 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.reactions - ✅
m.tags - ❌ cross-signing support
- ❌ server-side key backups (room key backup, "Secure Backup")
- ❌ user deactivation (#112)
- ❌ in-room emoji verification
Installation
To install nio, simply use pip:
$ 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 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 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:
$ 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
Release files for matrix-nio 0.25.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| matrix_nio-0.25.2.tar.gz | 155.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| matrix_nio-0.25.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 337.5 kB
Release files / matrix_nio-0.25.2.tar.gz
| Download URL | matrix_nio-0.25.2.tar.gz |
|---|---|
| Size | 155.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8ef8180c374e12368e5c83a692abfb3bab8d71efcd17c5560b5c40c9b6f2f600
|
|
BLAKE2b-256 checksum How to use checksums |
3350c20129fd6f0e1aad3510feefd3229427fc8163a111f3911ed834e414116b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/5.1.1 CPython/3.12.7
|
Release files / matrix_nio-0.25.2-py3-none-any.whl
| Download URL | matrix_nio-0.25.2-py3-none-any.whl |
|---|---|
| Size | 182.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9c2880004b0e475db874456c0f79b7dd2b6285073a7663bcaca29e0754a67495
|
|
BLAKE2b-256 checksum How to use checksums |
7b0f8b958d46e23ed4f69d2cffd63b46bb097a1155524e2e7f5c4279c8691c4a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/5.1.1 CPython/3.12.7
|