https://github.com/genofire/yaja
MIRROR: Yet Another JAbber implementation (xmpp) in go
https://github.com/genofire/yaja
client-library jabber mirrored-repositories monitoring-server server wip xmpp xmpp-client-library xmpp-server
Last synced: 2 months ago
JSON representation
MIRROR: Yet Another JAbber implementation (xmpp) in go
- Host: GitHub
- URL: https://github.com/genofire/yaja
- Owner: genofire
- License: other
- Created: 2017-10-01T21:32:03.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-09-06T11:30:57.000Z (over 6 years ago)
- Last Synced: 2025-01-31T14:19:47.321Z (4 months ago)
- Topics: client-library, jabber, mirrored-repositories, monitoring-server, server, wip, xmpp, xmpp-client-library, xmpp-server
- Language: Go
- Homepage: https://dev.sum7.eu/genofire/yaja
- Size: 156 KB
- Stars: 3
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# yaja (Yet Another JAbber implementation)
[](https://ci.sum7.eu/genofire/yaja)
[](https://circleci.com/gh/genofire/yaja/tree/master)
[](https://coveralls.io/github/genofire/yaja?branch=master)
[](https://codecov.io/gh/genofire/yaja)
[](https://goreportcard.com/report/github.com/genofire/yaja)
[](https://conversations.im/j/[email protected])## Features
- XMPP Library (first version - PR are welcome)
- Client Library (WIP)
- Stream: TLS Required
- SASL-Auth (PLAIN, DIGEST-MD5)
- Read & Decode (recv xml)
- Send (send xml)
- No OTR (never implemented -> nowadays OMEMO or PGP preferred)
- No OMEMO support (not implemented by me: library only for bots and testing)
- Client (planned)
- Daemon
- Tester (based on Client Library)
- Bidirected Messaging
- Check IPv4 & IPv6
- TLS Version
- Server (maybe broken, planned)
- get certificate by lets encrypt
- registration (for every possible TLS domain)## Library
### XMPP
all implementation of all comman (RFCs and XEPs) xml element**Version**
- [RFC 6120 (XMPP - Core)](https://xmpp.org/rfcs/rfc6120.html)
- [RFC 6121 (XMPP - Instant Messaging and Presence)](https://xmpp.org/rfcs/rfc6121.html)
- [XEP-0030: Service Discovery](https://xmpp.org/extensions/xep-0030.html)
- [XEP-0049: Private XML Storage](https://xmpp.org/extensions/xep-0049.html)
- [XEP-0092: Software Version](https://xmpp.org/extensions/xep-0092.html)
- [XEP-0138: Stream Compression](https://xmpp.org/extensions/xep-0138.html)
- [XEP-0199: XMPP Ping](https://xmpp.org/extensions/xep-0199.html)### Client
**Planned**
- auto decoding of XML (with some auto answer e.g. ping)
- SendRecv to get answer of a request
- Register## Run
```
A small standalone command line round about jabber (e.g tester WIP: client & server)Usage:
yaja [command]Available Commands:
daemon daemon of yaja
help Help about any commandFlags:
-h, --help help for yajaUse "yaja [command] --help" for more information about a command.
```
### Daemons
```
daemon of yajaUsage:
yaja daemon [command]Available Commands:
server runs xmpp server
tester runs xmpp tester serverFlags:
-h, --help help for daemonUse "yaja daemon [command] --help" for more information about a command.
```
#### Tester
Website for displaying: [genofire/yaja-tester-viewer](https://github.com/genofire/yaja-tester-viewer/tree/master)(dirty and based on [Freifunk Meshviewer](https://github.com/ffrgb/meshviewer/))
Demo: [tester.chat.sum7.eu](https://tester.chat.sum7.eu)
```
runs xmpp tester serverUsage:
yaja daemon tester [flags]Examples:
yaja daemon tester -c /etc/yaja.confFlags:
-c, --config string path to configuration file (default "yaja-tester.conf")
-h, --help help for tester```
**Features**
- notification of disconnect by server (domain)
- manage by bot command `admin (add|del) ` and `admin list`)
- auto accept subscription by every user to every bot
- `ping` to `pong` by every user to every bot (for self check)**Planned**
- improve chat bot implementation
- improve notification (add my self, not only other by admins)
- add new accounts/server
- other checks, maybe like [running](https://conversations.im/compliance/) - [source-code](https://github.com/iNPUTmice/ComplianceTester)
- software and version of xmpp servers**Inspiration by**
*Sorry i did not like Java on my server*
- ServerStatus of iNPUTmice: [running](https://status.conversations.im/) - [source-code](https://github.com/iNPUTmice/ServerStatus)#### Server
```
runs xmpp serverUsage:
yaja daemon server [flags]Examples:
yaja daemon server -c /etc/yaja.confFlags:
-c, --config string path to configuration file (default "yaja-server.conf")
-h, --help help for server
```## Inspiration by source-code structures (but rewritten)
- **server side:** [tam7t](https://github.com/tam7t/xmpp) a fork of [agl](https://github.com/agl)'s work
- **client side:** [mattn](https://github.com/mattn/go-xmpp) (original by russ cox)