Yet Another JAbber implementation (xmpp) in go Archived: We help maintaince gosrc.io/xmpp @ https://github.com/FluuxIO/go-xmpp, now.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
 
 
 
Martin/Geno c45e7346c6 Archive Yaja for gosrc.io/xmpp 1 year ago
.ci fix ci 1 year ago
bot fix ci 1 year ago
client [TEST] connect.go startStream 2 years ago
cmd replace server with bot library 1 year ago
database fix ci 1 year ago
model fix ci 1 year ago
xmpp add html support for messages 1 year ago
.drone.yml add drone ci - test -race 2 years ago
.gitignore implement client and start tester daemon 2 years ago
.gitlab-ci.yml fix ci 1 year ago
.test-coverage [BUGFIX] .text-coverage for strange repos 2 years ago
LICENSE Initial commit 3 years ago
README.md Archive Yaja for gosrc.io/xmpp 1 year ago
circle.yml [TASK] add CI circleci and codecov + coveralls 2 years ago
main.go [TASK] add CI circleci and codecov + coveralls 2 years ago
yaja-bot_example.conf replace server with bot library 1 year ago
yaja-tester_example.conf improve use bind of stream start + logging 2 years ago

README.md

yaja (Yet Another JAbber implementation)

pipeline status coverage report Go Report Card GoDoc

Archived/Unmaintained

We help maintain gosrc.io/xmpp @ https://github.com/FluuxIO/go-xmpp, now.

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)