sum7
/
yaja
Archived
1
0
Fork 0
Yet Another JAbber implementation (xmpp) in go Archived: We help maintaince gosrc.io/xmpp @ https://github.com/FluuxIO/go-xmpp, now.
This repository has been archived on 2020-09-27. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Martin/Geno 69c021b924
fix ci
2019-06-22 12:34:53 +02:00
.ci fix ci 2019-06-22 12:34:53 +02:00
bot fix ci 2019-06-22 12:34:53 +02:00
client [TEST] connect.go startStream 2018-03-06 21:32:42 +01:00
cmd replace server with bot library 2018-12-14 23:47:12 +01:00
database fix ci 2019-06-22 12:34:53 +02:00
model fix ci 2019-06-22 12:34:53 +02:00
xmpp add html support for messages 2019-06-21 02:51:43 +02:00
.drone.yml add drone ci - test -race 2018-04-18 14:59:59 +02:00
.gitignore implement client and start tester daemon 2018-02-07 19:47:59 +01:00
.gitlab-ci.yml fix ci 2019-06-22 12:34:53 +02:00
.test-coverage [BUGFIX] .text-coverage for strange repos 2018-02-14 11:11:47 +01:00
LICENSE Initial commit 2017-10-02 00:28:22 +02:00
README.md fix ci 2019-06-22 12:34:53 +02:00
circle.yml [TASK] add CI circleci and codecov + coveralls 2018-02-14 11:03:27 +01:00
main.go [TASK] add CI circleci and codecov + coveralls 2018-02-14 11:03:27 +01:00
yaja-bot_example.conf replace server with bot library 2018-12-14 23:47:12 +01:00
yaja-tester_example.conf improve use bind of stream start + logging 2018-02-11 22:48:41 +01:00

README.md

yaja (Yet Another JAbber implementation)

pipeline status coverage report Go Report Card GoDoc

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

Client

Planned

  • auto decoding of XML (with some auto answer e.g. ping)
  • SendRecv to get answer of a request
  • Register

Get yaja

Download

Latest Build binary from ci here:

Download All (with config example)

Download Binary

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 command

Flags:
  -h, --help   help for yaja

Use "yaja [command] --help" for more information about a command.

Daemons

daemon of yaja

Usage:
  yaja daemon [command]

Available Commands:
  server      runs xmpp server
  tester      runs xmpp tester server

Flags:
  -h, --help   help for daemon

Use "yaja daemon [command] --help" for more information about a command.

Tester

Website for displaying: genofire/yaja-tester-viewer

(dirty and based on Freifunk Meshviewer)

Demo: tester.chat.sum7.eu

runs xmpp tester server

Usage:
  yaja daemon tester [flags]

Examples:
yaja daemon tester -c /etc/yaja.conf

Flags:
  -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) <JID> 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 - source-code
    • software and version of xmpp servers

Inspiration by

Sorry i did not like Java on my server

Server

runs xmpp server

Usage:
  yaja daemon server [flags]

Examples:
yaja daemon server -c /etc/yaja.conf

Flags:
  -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 a fork of agl's work
  • client side: mattn (original by russ cox)