• This repository has been archived on 14/Jan/2024
  • Stars
    star
    218
  • Rank 181,253 (Top 4 %)
  • Language
    Python
  • License
    GNU Lesser Genera...
  • Created about 10 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An XMPP library for use with Python 3.5+ asyncio.

aioxmpp

https://travis-ci.org/horazont/aioxmpp.svg?branch=devel https://coveralls.io/repos/github/horazont/aioxmpp/badge.svg?branch=devel

... is a pure-python XMPP library using the asyncio standard library module from Python 3.4 (and available as a third-party module to Python 3.3).

Features

  • Native Stream Management (XEP-0198) support for robustness against transient network failures (such as switching between wireless and wired networks).
  • Powerful declarative-style definition of XEP-based and custom protocols. Most of the time, you will not get in contact with raw XML or character data, even when implementing a new protocol.
  • Secure by default: TLS is required by default, as well as certificate validation. Certificate or public key pinning can be used, if needed.
  • Support for RFC 6121 (Instant Messaging and Presence) roster and presence management, along with XEP-0045 (Multi-User Chats) for your human-to-human needs.
  • Support for XEP-0060 (Publish-Subscribe) and XEP-0050 (Ad-Hoc Commands) for your machine-to-machine needs.
  • Several other XEPs, such as XEP-0115 (including native support for the reading and writing the capsdb) and XEP-0131.
  • APIs suitable for both one-shot scripts and long-running multi-account clients.
  • Well-tested and modular codebase: aioxmpp is developed in test-driven style and in addition to that, many modules are automatedly tested against Prosody and ejabberd, two popular XMPP servers.

There is more and there’s yet more to come! Check out the list of supported XEPs in the official documentation and open GitHub issues tagged as enhancement for things which are planned and read on below on how to contribute.

Documentation

The aioxmpp API is thoroughly documented using Sphinx. Check out the official documentation for a quick start and the API reference.

Dependencies

Contributing

If you consider contributing to aioxmpp, you can do so, even without a GitHub account. There are several ways to get in touch with the aioxmpp developer(s):

  • The development mailing list. Feel free to subscribe and post, but be polite and adhere to the Netiquette (RFC 1855). Pull requests posted to the mailing list are also welcome!
  • The development MUC at [email protected]. Pull requests announced in the MUC are also welcome! Note that the MUC is set persistent, but nevertheless there may not always be people around. If in doubt, use the mailing list instead.
  • Open or comment on an issue or post a pull request on GitHub.

No idea what to do, but still want to get your hands dirty? Check out the list of 'help wanted' issues on GitHub or ask in the MUC or on the mailing list. The issues tagged as 'help wanted' are usually of narrow scope, aimed at beginners.

Be sure to read the docs/CONTRIBUTING.rst for some hints on how to author your contribution.

Security issues

If you believe that a bug you found in aioxmpp has security implications, you are welcome to notify me privately. To do so, send a mail to Jonas Schäfer, encrypted using the GPG public key 0xE5EDE5AC679E300F (Fingerprint AA5A 78FF 508D 8CF4 F355 F682 E5ED E5AC 679E 300F).

If you prefer to disclose security issues immediately, you can do so at any of the places listed above.

More details can be found in the SECURITY.md file.

Change log

The change log is included in the official documentation.

More Repositories

1

xmpp-echo-bot

XMPP/Jabber echo bot (written in sed)
sed
148
star
2

muchopper

25
star
3

xmpp-http-upload

An external HTTP upload (XEP-0363) implementation for use with e.g. Prosody
Python
23
star
4

aioopenssl

(START-)TLS-capable transport using OpenSSL for asyncio
Python
15
star
5

xmpp-crowd

The crowd of SleekXMPP/aioxmpp based bots which make my life easier.
Python
12
star
6

xmpp-blackbox-exporter

A Prometheus blackbox-like thing to probe XMPP services
Go
11
star
7

gnome-shell-extensions-mediaplayer

A mediaplayer indicator for the gnome-shell.
JavaScript
8
star
8

xsudo

Script to execute a X11 command as different user. Alternative to kdesudo/gksudo.
Shell
8
star
9

cuteborg

Third-party frontend to borgbackup (CLI and Qt)
Python
7
star
10

python3-openttd

Pure-python client implementation for the OpenTTD admin network interface.
Python
7
star
11

aiosasl

Pure-python, protocol-agnostic SASL implementation for asyncio
Python
6
star
12

dragonstash-golang

Transparent caching file system overlay written with FUSE and Golang.
Go
5
star
13

ansible-pulseaudio

An ansible role for a dedicated pulseaudio server (not running as root, but still offering network services during the whole uptime)
5
star
14

tagger

Songbird addon to manage and modify metadata.
JavaScript
5
star
15

rxml

4
star
16

covid

Preprocessing tools for various covid data to send it to InfluxDB for a nice dashboard
Rust
4
star
17

thorium

Thorium Scripting Language
Pascal
4
star
18

borgrdr

This repository moved to Codeberg. https://codeberg.org/jssfr/borgrdr
4
star
19

xmppobserve-web

Wait for it.
Python
3
star
20

ManiacLab

A boulder dash clone with awesome physics. And explosives. And lasers.
C++
3
star
21

lcdd

daemon to remote-control something connected via serial using XMPP (e.g. a Sparkfun SerLCD with FTDI USB adapter); You may want to look at the successor hint instead.
C
3
star
22

backupcopter

a follow-up on rsnapshot, written in python with some more flexibility, out-of-the-box support for atomic btrfs backups, cryptsetup and more
Python
3
star
23

ir-gate

Infrared remote control sniffer/forwarder/injecter
2
star
24

jitsi-meet-role

Install jitsi-meet on a Debian system
2
star
25

hint

Home Information Terminal — a multi-part system providing sensor and other information
C
2
star
26

tt3d

Freeform transport organization game
Pascal
2
star
27

greylist

A greylisting implementation (for postfix) in Python, with simple overrun DoS protection
Python
2
star
28

while-to-sed

A transpiler from the academic turing-complete WHILE language to sed
Python
2
star
29

librust-prosody-util-stanza

Drop-in replacement for Prosody util.stanza written in Rust
Rust
1
star
30

urncat

C
1
star
31

xmppoke-queue

Python
1
star
32

sig11

Small, thread-safe signal library for C++11 onwards.
C++
1
star
33

fuse-medialib

Scans a directory for files with metadata and mounts the created media library as a fuse filesystem.
Python
1
star
34

shader-preprocessor

A simple but extensible preprocessor for use with GLSL shaders.
C++
1
star
35

gametoolset

A freepascal library to manage data and data access.
Pascal
1
star
36

rust-lisp

Rust
1
star
37

ffengine

C++
1
star
38

siglyze

Open source signal analysis tool. See sigvize for a graphical frontend.
Pascal
1
star
39

timeaccount

Because sometimes you just have to NIH.
Python
1
star
40

borg-pull-wrappers

Wrapper executables for fancy borgbackup pull architectures
Go
1
star
41

sigvize

Open source visualization frontend for siglyze.
1
star
42

2048-ai

An artificial intelligence for the 2048 game, including an engine to run your own AIs.
Python
1
star