{"id":15019065,"url":"https://github.com/xmpppy/xmpppy","last_synced_at":"2026-02-08T01:08:45.075Z","repository":{"id":11597593,"uuid":"238145","full_name":"xmpppy/xmpppy","owner":"xmpppy","description":"Python 2/3 implementation of XMPP","archived":false,"fork":false,"pushed_at":"2026-01-27T09:22:11.000Z","size":542,"stargazers_count":106,"open_issues_count":25,"forks_count":67,"subscribers_count":9,"default_branch":"master","last_synced_at":"2026-01-27T09:36:33.149Z","etag":null,"topics":["jabber","jabber-client","xmpp","xmpp-client","xmpp-client-library","xmpp-library"],"latest_commit_sha":null,"homepage":"http://xmpppy.sourceforge.net/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"normanr/xmpppy","license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xmpppy.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2009-06-28T12:54:48.000Z","updated_at":"2026-01-27T09:22:14.000Z","dependencies_parsed_at":"2024-06-18T17:00:22.718Z","dependency_job_id":null,"html_url":"https://github.com/xmpppy/xmpppy","commit_stats":{"total_commits":431,"total_committers":21,"mean_commits":"20.523809523809526","dds":0.3781902552204176,"last_synced_commit":"dbb35f508a1ead5c3c5ad6ea8954da4d28fdd825"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/xmpppy/xmpppy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xmpppy%2Fxmpppy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xmpppy%2Fxmpppy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xmpppy%2Fxmpppy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xmpppy%2Fxmpppy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xmpppy","download_url":"https://codeload.github.com/xmpppy/xmpppy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xmpppy%2Fxmpppy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29216082,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-08T00:10:47.190Z","status":"ssl_error","status_checked_at":"2026-02-08T00:10:43.589Z","response_time":63,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["jabber","jabber-client","xmpp","xmpp-client","xmpp-client-library","xmpp-library"],"created_at":"2024-09-24T19:52:55.928Z","updated_at":"2026-02-08T01:08:45.069Z","avatar_url":"https://github.com/xmpppy.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"######\nxmpppy\n######\n\n.. image:: https://img.shields.io/pypi/pyversions/xmpppy.svg\n    :target: https://pypi.org/project/xmpppy/\n\n.. image:: https://img.shields.io/pypi/v/xmpppy.svg\n    :target: https://pypi.org/project/xmpppy/\n\n.. image:: https://img.shields.io/pypi/l/xmpppy.svg\n    :target: https://pypi.org/project/xmpppy/\n\n.. image:: https://img.shields.io/pypi/dm/xmpppy.svg\n    :target: https://pypi.org/project/xmpppy/\n\n.. image:: https://img.shields.io/pypi/status/xmpppy.svg\n    :target: https://pypi.org/project/xmpppy/\n\n.. image:: https://github.com/xmpppy/xmpppy/actions/workflows/tests.yml/badge.svg\n    :target: https://github.com/xmpppy/xmpppy/actions/workflows/tests.yml\n\n.. image:: https://img.shields.io/codecov/c/gh/xmpppy/xmpppy.svg\n    :target: https://codecov.io/gh/xmpppy/xmpppy/\n\n|\n\n:About: Python 2/3 implementation of XMPP\n:Standards: `RFC3920`_, `RFC3921`_\n:Documentation: https://xmpppy.sourceforge.net/\n:Source Code: https://github.com/xmpppy/xmpppy\n\n\n************\nInstallation\n************\n\nUsing ``pip``, you can install the package with::\n\n    pip install --upgrade xmpppy\n\n\n*****\nUsage\n*****\n\nAs a library\n============\n\nRegularly, the module is used as a library, like::\n\n    import xmpp\n\n    jabberid = \"foobar@xmpp.domain.tld\"\n    password = \"secret\"\n    receiver = \"bazqux@xmpp.domain.tld\"\n    message  = \"hello world\"\n\n    def main():\n        jid = xmpp.protocol.JID(jabberid)\n        connection = xmpp.Client(server=jid.getDomain(), debug=True)\n        connection.connect()\n        connection.auth(user=jid.getNode(), password=password, resource=jid.getResource())\n        connection.send(xmpp.protocol.Message(to=receiver, body=message))\n\n    if __name__ == \"__main__\":\n        main()\n\n\nCommand line interface\n======================\n\nThe package also installs a command line program called ``xmpp-message``.\nIts synopsis is::\n\n    xmpp-message --debug \\\n        --jabberid foobar@xmpp.domain.tld --password secret \\\n        --receiver bazqux@xmpp.domain.tld --message 'hello world'\n\nYou can also put your credentials into an ``~/.xsend`` file, like::\n\n    JID=foobar@xmpp.domain.tld\n    PASSWORD=secret\n\nand then invoke ``xmpp-message`` omitting the ``--jabberid`` and ``--password`` options, like::\n\n    xmpp-message --receiver bazqux@xmpp.domain.tld --message 'hello world'\n\n\n*************\nDocumentation\n*************\n\nThe canonical documentation is hosted at https://xmpppy.github.io/ and\nhttp://xmpppy.sourceforge.net/.\n\nFor learning about how to use this module, please have a look at these spots\nwithin the code base.\n\n- The ``xmpp-message`` program, located at ``xmpp/cli.py``, for sending a single XMPP message.\n- The other programs within the ``doc/examples`` directory.\n- The docstrings within the library itself.\n\n\n***********\nDevelopment\n***********\n\nAcquire sources and bootstrap sandbox::\n\n    git clone https://github.com/xmpppy/xmpppy\n    cd xmpppy\n    python3 -m venv .venv\n    source .venv/bin/activate\n    pip install --upgrade --editable='.[test]'\n\nRun software tests::\n\n    docker compose --file tests/compose.yml up\n    pytest\n\nRun particular tests::\n\n    pytest --no-cov -k compile\n\n\n*******\nSupport\n*******\nIf you have any questions about xmpppy usage or you have found a bug or want\nto share some ideas - you are welcome to join us on the\n`issue tracker \u003chttps://github.com/xmpppy/xmpppy/issues\u003e`_\nor on the\n`xmpppy-devel mailing list \u003chttp://lists.sourceforge.net/lists/listinfo/xmpppy-devel\u003e`_.\n\n\n\n**************\nOther projects\n**************\n- https://github.com/poezio/slixmpp\n- https://github.com/horazont/aioxmpp\n- https://github.com/Jajcus/pyxmpp2\n- https://github.com/fritzy/SleekXMPP\n- https://dev.gajim.org/gajim/python-nbxmpp\n- https://github.com/xmpppy/xmpppy/files/4346179/xmpp_libs.xlsx\n\n\n.. _RFC3920: https://datatracker.ietf.org/doc/rfc3920/\n.. _RFC3921: https://datatracker.ietf.org/doc/rfc3921/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxmpppy%2Fxmpppy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxmpppy%2Fxmpppy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxmpppy%2Fxmpppy/lists"}