1
0
Fork
You've already forked xmpp
0
forked from mellium/xmpp
An implementation of the Extensible Messaging and Presence Protocol (XMPP) in Go.
  • Go 97.9%
  • Python 1.4%
  • Lua 0.4%
  • Makefile 0.3%
Sam Whited 791d003b24
stream: fix unmarshalling of stream error
Previously we were always skipping the end of child elements, even if we
had fully decoded that element and read to the end (as we did with
"text" elements, meaning we would skip over the next child after a
"text" element instead of just fast-forwarding to the end of the current
child as intended.
This improves CI to actually check that we get the correct value for the
text field as well.
Signed-off-by: Sam Whited <sam@samwhited.com>
2023年08月22日 09:21:42 -04:00
.woodpecker .woodpecker: run CI against Go 1.20 and 1.21 2023年08月18日 07:49:34 -04:00
blocklist blocklist: add reporting integration test 2023年01月05日 09:56:48 -05:00
bookmarks bookmarks: add ability to delete a bookmark 2022年03月06日 08:49:04 -05:00
carbons carbons: add Private method 2021年11月24日 07:25:12 -05: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: implement types for trust messages 2023年06月19日 18:11:07 -04:00
delay stanza: add NSClient and NSServer constants 2021年11月09日 07:06:16 -05:00
design design: tweak link text in pubsub_notify 2022年12月31日 10:03:36 -05:00
dial dial: implement support for ALPN as per XEP-0368 2021年12月07日 14:32:45 -05:00
disco disco: run integration tests against Jackal 2022年08月14日 20:02:44 -04:00
docs docs: minor typo fixes 2023年07月29日 13:10:20 -04:00
examples examples/echobot: fix typo 2023年08月01日 08:36:34 -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: run integration tests against Jackal 2022年08月14日 20:06:42 -04:00
internal internal/discover: remove unused variable 2023年02月24日 11:52:02 -05:00
jid jid: disable allocation test 2023年08月18日 07:49:34 -04:00
muc muc: fix implicit memory aliasing 2023年08月22日 08:14:10 -04:00
mux mux: ignore chardata in IQs 2022年08月14日 08:56:15 -04: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 internal/genpubsub: update condition names 2023年01月15日 05:55:35 -05:00
receipts stanza: add NSClient and NSServer constants 2021年11月09日 07:06:16 -05:00
roster roster: run integration tests against Jackal 2022年08月14日 20:04:21 -04:00
s2s s2s: add bidi implementation 2021年01月17日 11:26:20 -05:00
stanza stanza: always unmarshal error conditions 2023年01月13日 10:51:39 -05:00
stream stream: fix unmarshalling of stream error 2023年08月22日 09:21:42 -04:00
styling all: run gofmt for Go 1.19 doc comments 2022年06月19日 07:33:19 -04: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: add tool to export tests 2021年11月10日 20:29:46 -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 stanza: always unmarshal error conditions 2023年01月13日 10:51:39 -05:00
conn.go xmpp: fix ineffectual assignment in teeConn 2021年06月24日 09:52:04 -04:00
CONTRIBUTORS all: add myself to CONTRIBUTORS 2023年08月18日 07:49:33 -04:00
DCO .builds: add DCO check 2020年02月21日 00:23:55 -05:00
doc.go all: run gofmt for Go 1.19 doc comments 2022年06月19日 07:33:19 -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: add informational stream features API 2022年02月16日 07:48:30 -05:00
go.mod all: update dependencies 2023年02月24日 11:52:02 -05:00
go.sum all: update dependencies 2023年02月24日 11:52:02 -05: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 all: update build tags for Go 1.17 2021年06月24日 20:24:37 -04: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 internal/ns: remove ns.WS constant 2023年01月02日 06:49:26 -05:00
session_iq.go xmpp: return start token for iter IQ payloads 2021年07月31日 09:59:27 -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 internal/stream: remove s2s bool from stream send 2021年09月24日 10:41:54 -04: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 xmpp: fix test broken by recent StartTLS changes 2023年01月02日 06:57:16 -05: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.