Giter Club home page Giter Club logo

ttalk-server's Introduction

TTalk

TTalk is a open source XMPP Server based on MongooseIM. Specifically designed for enterprise purposes, it is fault-tolerant, can utilize resources of multiple clustered machines and easily scale in need of more capacity (by just adding a box/VM).

Main differences from the parent project

This project began its life as a fork of MongooseIM v16.1 and later underwent some major cleanup, refactorization and optimization.

Major steps performed:

  • advanced offline messages storage
  • advanced message ack
  • advanced group support
  • web managent

How to build

  1. Requirements.

    To compile MongooseIM you need:

    • GNU Make,
    • GCC,
    • Libexpat 1.95 or higher,
    • Erlang/OTP R16B03-1 or higher,
    • Reltool 0.6.4.1 or higher,
    • OpenSSL 0.9.8 or higher, for STARTTLS, SASL and SSL encryption,
    • Zlib 1.2.3 or higher for Stream Compression support (XEP-0138). Optional.
  2. Compiling on UNIX-like systems.

    To compile MongooseIM, go to the main repo directory $REPO and execute the command ($ stands for the shell prompt):

    $ make
    

    or

    $ ./rebar get-deps
    $ ./rebar compile
    

    To generate full MongooseIM release (with mysql, pgsql or other deps):

    $ make rel
    

    or

    $ ./rebar generate
    

    If more advanced release is required (with some specifyc db support only, f.e. mysql or pgsql) a make configure script with appropirate option(s) can be run before make rel or ./rebar generate. make configure without any option will print following help message.

specifies which 3rd party deps will be included in release possible options: with-mysql include mysql driver with-pgsql include pgsql driver with-odbc include standard ODBC driver shipped with Erlang/OTP with-redis include redis driver with-riak include riak driver with-cassandra include cassandra driver full include all above deps ```

For example if mysql and redis support has to be added to the release, following command has to be run before `make rel`:

    $ make configure with-mysql with-redis

The `make configure` command has to be run only once (unless one need to change the relase config and include some other dependecies).

Take a look [here](http://mongooseim.readthedocs.org/en/latest/advanced-configuration/database-backends-configuration/)
for instructions how to setup the external databases.

`make rel` or `./rebar generate` commands will generate a self-contained OTP system image in the
project's `rel/mongooseim` subdirectory. The contents of that directory are as
follows:
*   `rel/mongooseim/bin` - startup/administration scripts,
*   `rel/mongooseim/etc` - configuration files,
*   `rel/mongooseim/lib` - MongooseIM binary, header and runtime files,
*   `rel/mongooseim/var` - spool directory,
*   `rel/mongooseim/log` - log file directory,
*   `rel/mongooseim/releases` - release files directory.
  1. Running MongooseIM.

    To run MongooseIM from the project tree after compiling it, change to $REPO/rel/mongooseim.

    There you can use the mongooseim command line administration script to start and stop MongooseIM. For example:

    $ bin/mongooseim start
    

    will start the server.

    You can also run the server in interactive mode:

    $ bin/mongooseim live
    

    There's also a tool called mongooseimctl allowing you to perform some operations on a running instance, e.g.:

    $ bin/mongooseimctl status
    The node mongooseim@localhost is started with status: started
    MongooseIM version 1.3.1 is running on that node
    
  2. Building the testing target and running tests.

    For testing purposes there's a different make target available:

    $ make devrel
    

    which will generate releases in $REPO/dev/ and prepare them for testing and generating coverage reports.

    To run the tests (from project's root directory, i.e. $REPO):

    $ cd test
    $ make quicktest
    

    The test results will show up in the console`.

TTalk

TTalk 是一款基于MongooseIM的服务器。重点在企业级应用支持上,如果高可用,可扩展等。

主要不同

  • 更好的离线存储机制
  • 更好的消息确认机制
  • 更好的组支持
  • web管理

交流

由于目前ttalk还无法运行目前只能用QQ群进行交流
QQ群:216591294

TODO

  • 简化链接流程
  • 减少路由的流程
  • disable negotiate features
  • make message routing more simple

ttalk-server's People

Contributors

badlop avatar michalwski avatar alexeyshch avatar erszcz avatar mremond avatar arcusfelis avatar fenek avatar zinid avatar alipiec avatar davidalphafox avatar paulgray avatar ludwikbukowski avatar ppikula avatar jsautret avatar shambhuprasad58 avatar pianiel avatar studzien avatar nyco avatar paulsd avatar gmodarelli avatar pzel avatar bartekgorny avatar konradkaplita avatar rpt avatar goddammit avatar astachurski avatar lemenkov avatar goj avatar igorkarymov avatar legoscia avatar

Watchers

黄国华 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.