- About:
Python 2/3 implementation of XMPP
- Standards:
- Documentation:
- Source Code:
Installation
Using pip, you can install the package with:
pip install --upgrade xmpppy
Usage
As a library
Regularly, the module is used as a library, like:
import xmpp
jabberid = "foobar@xmpp.domain.tld"
password = "secret"
receiver = "bazqux@xmpp.domain.tld"
message = "hello world"
def main():
jid = xmpp.protocol.JID(jabberid)
connection = xmpp.Client(server=jid.getDomain(), debug=True)
connection.connect()
connection.auth(user=jid.getNode(), password=password, resource=jid.getResource())
connection.send(xmpp.protocol.Message(to=receiver, body=message))
if __name__ == "__main__":
main()
Command line interface
The package also installs a command line program called xmpp-message. Its synopsis is:
xmpp-message --debug \
--jabberid foobar@xmpp.domain.tld --password secret \
--receiver bazqux@xmpp.domain.tld --message 'hello world'
You can also put your credentials into an ~/.xsend file, like:
JID=foobar@xmpp.domain.tld PASSWORD=secret
and then invoke xmpp-message omitting the --jabberid and --password options, like:
xmpp-message --receiver bazqux@xmpp.domain.tld --message 'hello world'
Documentation
The canonical documentation is hosted at https://xmpppy.github.io/ and http://xmpppy.sourceforge.net/.
For learning about how to use this module, please have a look at these spots within the code base.
The xmpp-message program, located at xmpp/cli.py, for sending a single XMPP message.
The other programs within the doc/examples directory.
The docstrings within the library itself.
Development
Sandbox
Acquire sources and bootstrap sandbox:
git clone https://github.com/xmpppy/xmpppy cd xmpppy python3 -m venv .venv source .venv/bin/activate pip install --upgrade --editable='.[test]'
Software tests
Running the software tests requires a local XMPP server and a specific user account.
- TCP (ipv4):
localhost:5222
- XMPP vhost:
localhost
- JID:
testdrive@localhost
- Password:
secret
The server needs to support the core XMPP specification, it does not need to federate with other servers, nor provide TLS upgrades or other remote accesses.
Run software tests:
pytest
Run particular test cases:
pytest --no-cov -k compile
Run software tests using Prosody XMPP through the accompanied Compose file:
docker compose --file=tests/compose.yml up docker compose --file=tests/compose.yml exec prosody prosodyctl register testdrive localhost secret pytest
Support
If you have any questions about xmpppy usage or you have found a bug or want to share some ideas - you are welcome to join us on the issue tracker or on the xmpppy-devel mailing list.
Other projects
Release files for xmpppy 0.7.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| xmpppy-0.7.4.tar.gz | 90.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| xmpppy-0.7.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 178.0 kB
Release files / xmpppy-0.7.4.tar.gz
| Download URL | xmpppy-0.7.4.tar.gz |
|---|---|
| Size | 90.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f54df50a153c104d33456768936e9e8352e6c57cb3bed2cb93a2a0ee3fffd73c
|
|
BLAKE2b-256 checksum How to use checksums |
6ea6a53d1ca08c686dd9e1bc18cf0fa3cd67462d43c69087fa55270f6b6d802c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.11
|
Release files / xmpppy-0.7.4-py3-none-any.whl
| Download URL | xmpppy-0.7.4-py3-none-any.whl |
|---|---|
| Size | 87.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
69d6ea00a85aad0250f8cafc2e073b4d6320d19a7d00bd728f74fcf1f138b77a
|
|
BLAKE2b-256 checksum How to use checksums |
e83421d3f3f4f6110c2efe8f31f6a9aede8af82f4cd2d59f0645e7976f008e78
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.11
|