10
15
Fork
You've already forked xmpp
11
An implementation of the Extensible Messaging and Presence Protocol (XMPP) in Go. https://mellium.im
  • Go 97.6%
  • Python 1.3%
  • Go Template 0.4%
  • Lua 0.4%
  • Makefile 0.3%
Karel Balej c36c328d06
Some checks failed
ci/woodpecker/pr/dco Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/validate Pipeline failed
ci/woodpecker/pr/integration Pipeline was successful
ci/woodpecker/push/dco Pipeline was successful
ci/woodpecker/pull_request_closed/dco Pipeline was successful
ci/woodpecker/pull_request_closed/test Pipeline was successful
ci/woodpecker/pull_request_closed/validate Pipeline was successful
ci/woodpecker/pull_request_closed/integration Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/validate Pipeline failed
ci/woodpecker/push/integration Pipeline was successful
all: update golang.org/x/net for CVE-2026-39821
Link: https://pkg.go.dev/vuln/GO-2026-5026
Signed-off-by: Karel Balej <balejk@matfyz.cz>
2026年07月13日 20:43:04 +02:00
.woodpecker .woodpecker: bump CI image to use Go 1.25 2026年02月22日 13:39:41 -05:00
bin bin: new package implementing bits-of-binary 2024年12月05日 10:41:11 -05:00
blocklist xmpptest: allow modifying the origin and location JIDs 2026年05月01日 11:45:44 +02:00
bookmarks all: allowlist all safe "Password" fields 2026年02月22日 21:19:51 -05:00
carbons carbons: ignore spoofed messages 2026年05月04日 17:10:16 +02:00
color color: remove deprecated type in example 2021年03月08日 20:42:54 -05:00
commands all: generate disco features 2021年08月11日 19:30:28 -04:00
component component: ensure stream namespace is set 2022年05月19日 08:56:59 -04:00
crypto crypto: remove use of strconv 2024年09月04日 12:21:04 -04:00
delay stanza: add NSClient and NSServer constants 2021年11月09日 07:06:16 -05:00
design design: clarify some parts of pubsub notify 2023年12月18日 07:50:20 -05:00
dial dial: prioritize SRV-defined endpoints and non-TLS fallbacks 2026年02月23日 13:52:36 +01:00
disco disco: add CollectInfo() 2026年07月13日 19:51:21 +02:00
docs docs: update release docs to include signing tag 2024年09月24日 11:02:54 -04:00
examples all: update golang.org/x/net for CVE-2026-39821 2026年07月13日 20:43:04 +02:00
file file: add missing header comment 2024年08月31日 13:41:53 -04:00
form form: remove reference to for loop variable 2022年03月17日 10:09:51 -04:00
forward forward: test Unwrap when errors are expected 2021年11月12日 10:45:56 +00:00
history all: don't log XML in integration tests 2022年08月18日 06:45:36 -04:00
ibb ibb: fix deadlock in tests 2024年09月04日 12:08:39 -04:00
internal xmpptest: add NotifyingHandler 2026年05月04日 17:10:11 +02:00
jid jid: remove JID parsing malloc test 2024年12月04日 13:37:56 -05:00
muc muc: fix code in docs 2026年03月19日 20:27:34 -04:00
mux xmpptest: allow modifying the origin and location JIDs 2026年05月01日 11:45:44 +02:00
oob all: run gofmt for Go 1.19 doc comments 2022年06月19日 07:33:19 -04:00
paging paging: ensure index is an attribute 2021年08月18日 09:22:30 -04:00
ping ping: run integration tests against Jackal 2022年08月14日 20:00:19 -04:00
pubsub pubsub: implement event handling 2026年07月13日 20:43:01 +02:00
receipts xmpptest: allow modifying the origin and location JIDs 2026年05月01日 11:45:44 +02:00
roster roster: support the 'ask' and 'approved' attributes 2026年05月11日 12:24:31 +02:00
s2s s2s: add bidi implementation 2021年01月17日 11:26:20 -05:00
stanza stanza: remove an obsolete part of Presence.Wrap description 2026年04月07日 21:32:19 +02:00
stream stream: silence some linter false positives 2024年08月31日 13:13:16 -04:00
styling styling: mov fuzz tests out from behind build tag 2024年12月06日 11:33:38 -05:00
upload upload: new package implementing HTTP upload 2022年08月15日 13:16:56 -04:00
uri uri: better error handling in tests 2021年06月24日 09:41:19 -04:00
version version: add software version requests handler 2023年01月06日 17:27:17 +02:00
websocket websocket: rewrite WebSocket lookups 2022年02月21日 07:32:48 -05:00
x509 all: update copyright message 2018年02月17日 21:19:29 -06:00
xtime internal/integration/jackal: add modules option 2022年08月18日 06:49:17 -04:00
.gitignore styling: remove style from tokens 2024年12月06日 11:33:34 -05:00
bind.go xmpp: add UpdateAddr to set JID during bind 2022年08月22日 11:49:01 -04:00
bind_test.go xmpp: use correct namespace on bind response 2022年04月17日 07:57:22 -04:00
CHANGELOG.md pubsub: implement event handling 2026年07月13日 20:43:01 +02:00
conn.go xmpp: fix ineffectual assignment in teeConn 2021年06月24日 09:52:04 -04:00
CONTRIBUTORS dial: prioritize SRV-defined endpoints and non-TLS fallbacks 2026年02月23日 13:52:36 +01:00
DCO .builds: add DCO check 2020年02月21日 00:23:55 -05:00
doc.go all: update broken example in docs 2024年10月14日 06:35:26 -04:00
echobot_example_test.go xmpp: make STARTTLS always required 2020年05月08日 08:30:21 -04:00
error_test.go xmpp: implement server side of SASL 2021年01月14日 08:00:13 -05:00
export_test.go xmpp: add tests for sending stanzas 2019年06月18日 11:43:32 -05:00
features.go xmpp: allow whitespace inside IQ stanza 2024年09月06日 07:39:23 -04:00
go.mod all: update golang.org/x/net for CVE-2026-39821 2026年07月13日 20:43:04 +02:00
go.sum all: update golang.org/x/net for CVE-2026-39821 2026年07月13日 20:43:04 +02:00
handler.go all: allow encoding structs from within handlers 2019年07月23日 13:05:14 -05:00
handler_test.go all: add missing copyright notices 2020年03月29日 19:40:12 -04:00
LICENSE docs: rename LICENSE file 2018年08月17日 12:15:31 -05:00
LICENSE-GO all: add Go license 2019年07月19日 18:28:39 -05:00
Makefile pubsub: generate condition types 2023年01月05日 20:23:28 -05:00
negotiator.go stanza: add NSClient and NSServer constants 2021年11月09日 07:06:16 -05:00
README.md all: update build status badge in readme 2022年07月15日 08:35:13 -04:00
sasl.go all: rename saslerr.Failure to "Error" 2022年12月31日 08:37:32 -05:00
sasl_integration_test.go xmpp: test SCRAM-SHA-1-PLUS on TLS 1.3 2024年12月04日 10:18:20 -05:00
sasl_test.go all: rename saslerr.Failure to "Error" 2022年12月31日 08:37:32 -05:00
send_test.go xmpp: fix an error in UnmarshalIQ 2021年07月29日 10:12:29 -04:00
session.go xmpp: check stanza type before routing response 2024年09月23日 11:13:10 -04:00
session_iq.go xmpp: return start token for iter IQ payloads 2021年07月31日 09:59:27 -04:00
session_iq_test.go xmpp: check stanza type before routing response 2024年09月23日 11:13:10 -04:00
session_message.go stanza: add NSClient and NSServer constants 2021年11月09日 07:06:16 -05:00
session_message_test.go xmpp: add Message and Presence send methods 2021年07月02日 11:39:13 -04:00
session_presence.go stanza: add NSClient and NSServer constants 2021年11月09日 07:06:16 -05:00
session_presence_test.go xmpp: add Message and Presence send methods 2021年07月02日 11:39:13 -04:00
session_test.go xmpptest: allow modifying the origin and location JIDs 2026年05月01日 11:45:44 +02:00
sessionstate_string.go xmpp: implement fmt.Stringer for SessionState 2021年02月25日 09:14:04 -05:00
starttls.go xmpp: return better errors during StartTLS 2023年01月01日 09:40:13 -05:00
starttls_test.go xmpptest: allow modifying the origin and location JIDs 2026年05月01日 11:45:44 +02:00
tools.go all: update build tags for Go 1.17 2021年06月24日 20:24:37 -04:00

XMPP

GoDoc Chat License Build Status CII Best Practices

An Extensible Messaging and Presence Protocol (XMPP) library in Go. XMPP (sometimes known as "Jabber") is a protocol for near-real-time data transmission, most commonly used for instant messaging, video chat signaling, and related functionality. This library aims to provide general protocol support with additional packages that focus on modern instant messaging use cases.

This library supports instant messaging features such as:

  • Individual and group chat,
  • Blocking and unblocking users,
  • Forms and commands (eg. for controlling bots and gateways),
  • Retrieving message history,
  • General publish-subscribe semantics for storing state and data,
  • Parsing simple text styling (eg. bold, italic, quotes, etc.),
  • and more!

To use it in your project, import it (or any of its other packages) like so:

importmellium.im/xmpp

If you're looking to get started and need some help, see the API docs or look in the examples/ tree for several simple usage examples.

If you'd like to contribute to the project, see CONTRIBUTING.md.

License

The package may be used under the terms of the BSD 2-Clause License a copy of which may be found in the file "LICENSE". Some code in this package has been copied from Go and is used under the terms of Go's modified BSD license, a copy of which can be found in the LICENSE-GO file.

Unless you explicitly state otherwise, any contribution submitted for inclusion in the work by you shall be licensed as above, without any additional terms or conditions.