• This repository has been archived on 07/Nov/2019
  • Stars
    star
    179
  • Rank 213,983 (Top 5 %)
  • Language
    Erlang
  • Created almost 15 years ago
  • Updated almost 8 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Erlang XMPP library
Exmpp is an Erlang application which provides the modules to ease the
development of an XMPP/Jabber server or client.

== Table of contents ==

    I. How to build and install
        1. Requirements
        2. Build and install
        3. Building examples
        4. Using an alternate Erlang environment
        5. Using another C compiler
        6. Creating Autotools files

I. How to build and install
===========================

1. Requirements
---------------

    o  Erlang/OTP (REQUIRED)
       A full Erlang environment is recommended but only ERTS and
       erl_interface are required.
           . Minimum version:           R12B-5

    o  C compiler (REQUIRED)
       Exmpp contains Erlang port drivers which are written in C.
       Tested C compilers include:
           . GNU Compiler Collection (gcc)
           . Intel C++ Compiler (icc)
           . GCC frontend for LLVM (llvm-gcc)
           . Microsoft Visual C++ (cl)
       C compilers known not to work:
           . clang frontend for LLVM (ccc)

    o  XML parsing library (REQUIRED)
       Tested libraries are:
           . Expat: recommended. Tested: 2.0.1
           . LibXML2: only experimental support.

    o  OpenSSL (optional)
       It's the only TLS engine supported for now.
           . Tested version:            0.9.8e

    o  zlib (optional)
       It's the only compression engine supported for now.
           . Tested version:            1.2.3

    o  eunit (optional)
       To be able to use the testsuite, this Erlang application is required.
           . Tested version:            2.0

2. Build and install
--------------------

Exmpp uses the Autotools. Therefore the process is quite common:

    $ ./configure
    $ make
    $ sudo make install

Building outside of the source directory is supported:

    $ mkdir exmpp-build
    $ cd exmpp-build
    exmpp-build$ /path/to/exmpp-src/configure
    exmpp-build$ make
    exmpp-build$ sudo make install

By default, Exmpp is installed in Erlang lib directory. You may select
another directory with the --prefix argument to the configure script:

    $ ./configure --prefix=/install/exmpp/here

Exmpp will be installed in "/install/exmpp/here/exmpp-$VERSION".

3. Building examples
--------------------

You can find example code in the "examples" directory.

These modules may be built for you with the --enable-examples configure
argument:

    $ ./configure --enable-examples

For now, they're not installed.

4. Using an alternate Erlang environment
----------------------------------------

If Erlang cannot be found by the configure script of if you prefer to
use a specific Erlang environment, you may indicate an alternate Erlang
root directory with the --with-erlang argument:

    $ ./configure --with-erlang=/path/to/alternate/erlang

Another way is to set the following configure variables:

    $ ./configure ERL=/path/to/bin/erl ERLC=/path/to/bin/ERLC \
      ESCRIPT=/path/to/bin/escript

5. Using another C compiler
---------------------------

You may specify another C compiler to use at configure time. For
instance, to use GCC frontend for LLVM:

    $ ./configure CC=llvm-gcc
    $ make

6. Creating Autotools files
---------------------------

If you work on a Subversion checkout, you'll have to generate some files
such as the configure script and Makefile.in. For this, you'll have to
install the following autotools:
    o  autoconf 2.60 or higher (read below for 2.62 and 2.63)
    o  automake 1.9 or later
    o  libtool 1.5 or later

To generate the files, run:

    $ autoreconf -vif

After that, you can use the standard procedure:

    $ ./configure
    $ make

WARNING: Erlang support in old autoconf 2.62 and 2.63 was broken! If you
must stick to these versions, you must apply the following patch to
'erlang.m4' in 'share/autoconf-2.62/autoconf' (patch taken from official
autoconf GIT repository):

----8<----
--- erlang.m4-broken	2009-01-14 17:54:41.000000000 +0100
+++ erlang.m4	2009-01-14 16:51:57.000000000 +0100
@@ -124,7 +124,7 @@
 m4_define([AC_LANG(Erlang)],
 [ac_ext=erl
 ac_compile='$ERLC $ERLCFLAGS -b beam conftest.$ac_ext >&AS_MESSAGE_LOG_FD'
-ac_link='$ERLC $ERLCFLAGS -b beam conftest.$ac_ext >&AS_MESSAGE_LOG_FD ; echo "#!/bin/sh" > conftest$ac_exeext ; AS_ECHO(["\"$ERL\" -run conftest start -run init stop -noshell"]) >> conftest$ac_exeext ; chmod +x conftest$ac_exeext'
+ac_link='$ERLC $ERLCFLAGS -b beam conftest.$ac_ext >&AS_MESSAGE_LOG_FD ; echo "[#]!/bin/sh" > conftest$ac_exeext ; AS_ECHO(["\"$ERL\" -run conftest start -run init stop -noshell"]) >> conftest$ac_exeext ; chmod +x conftest$ac_exeext'
 ])
 
 
----8<----

After applying the patch, you must run the following commands:

    $ cd [...]/share/autoconf-2.62/autoconf
    $ autom4te --language=autoconf --freeze --output=autoconf.m4f

More Repositories

1

ejabberd

Robust, Ubiquitous and Massively Scalable Messaging Platform (XMPP, MQTT, SIP Server)
Erlang
6,101
star
2

tsung

Tsung is a high-performance benchmark framework for various protocols including HTTP, XMPP, LDAP, etc.
Erlang
2,543
star
3

ejabberd-contrib

Growing and curated ejabberd contributions repository - PR or ask to join !
Erlang
250
star
4

stun

STUN and TURN library for Erlang / Elixir
Erlang
245
star
5

eturnal

STUN / TURN standalone server
Erlang
241
star
6

xmpp-messenger-ios

iOS XMPP Messenger Framework
Swift
219
star
7

xmpp

Erlang/Elixir XMPP parsing and serialization library on top of Fast XML
Erlang
136
star
8

fast_xml

Fast Expat based Erlang XML parsing library
Erlang
134
star
9

oneteam

OneTeam XMPP multi-platform client. This is a Mozilla / XUL based platform, developed mostly in Javascript and C++ XPCOM.
C
100
star
10

docker-ejabberd

Set of ejabberd Docker images
Shell
95
star
11

grapherl

ejabberd monitoring server
Erlang
91
star
12

fast_tls

TLS / SSL OpenSSL-based native driver for Erlang / Elixir
C
83
star
13

demo-xmpp-ios

XMPPFramework Basic client relying using CocoaPods package
Swift
56
star
14

iconv

Fast encoding conversion library for Erlang / Elixir
Shell
54
star
15

fast_yaml

Fast YAML native library for Erlang / Elixir
Erlang
51
star
16

rtb

Benchmarking tool to stress real-time protocols
Erlang
50
star
17

eimp

Erlang Image Manipulation Process
Erlang
47
star
18

cache_tab

In-memory cache Erlang / Elixir library
Erlang
44
star
19

oms

Erlang-based Flash media server supporting video streaming, video conferencing, RPC call from client and from server, Remote Shared objects.
JavaScript
43
star
20

go-erlang

Go library for Erlang/Elixir interop
Go
31
star
21

ejabberd-vagrant-dev

Vagrant and Ansible script to create a VM preconfigured for ejabberd development
31
star
22

ejabberd-api

ejabberd API library in Go and multi-platform command-line tool
Go
24
star
23

xmpp-websocket-client

Test XMPP Websocket client
JavaScript
21
star
24

esip

ProcessOne SIP server component in Erlang
Erlang
20
star
25

p1_utils

Erlang Utility Modules from ProcessOne
Erlang
19
star
26

p1_pgsql

Pure Erlang PostgreSQL driver
Erlang
19
star
27

oneweb

OneWeb firefox extension to interact with browser and share content over XMPP
JavaScript
18
star
28

p1_mysql

Pure Erlang MySQL driver
Erlang
18
star
29

fast_ts

Fast TS is a fast Time Series Event Stream Processor
Elixir
17
star
30

stringprep

Fast Stringprep implementation for Erlang / Elixir
C
16
star
31

jamler

OCaml
15
star
32

docs.ejabberd.im

This is documentation site for ejabberd messaging server
CSS
14
star
33

mqtree

Index tree for MQTT topic filters
C
14
star
34

ezlib

Native zlib driver for Erlang / Elixir
Erlang
13
star
35

mysql

Erlang MySQL driver
Erlang
13
star
36

xml

Fast Expat based Erlang XML parsing library
Erlang
12
star
37

pkix

PKIX certificates management for Erlang
Erlang
11
star
38

epam

epam helper for Erlang / Elixir PAM authentication support
Erlang
11
star
39

p1_acme

ACME client library for Erlang
Erlang
11
star
40

eiconv

iconv Erlang binding
Shell
10
star
41

tls

TLS / SSL native driver for Erlang / Elixir
C
10
star
42

p1pp

ProcessOne Push Platform Command Line
Ruby
10
star
43

dpk

Analyse & convert data from online services for backup, indexing or migration purpose
Go
9
star
44

httpmock

HTTP recorder and mock library
HTML
9
star
45

xmpp-notifier

Github Action to send repository notifications to XMPP
Go
9
star
46

pgsql

Pure Erlang PostgreSQL driver
Erlang
8
star
47

p1_yaml

Fast Yaml native library for Erlang / Elixir
Erlang
7
star
48

yconf

YAML configuration processor
Erlang
7
star
49

p1pp-js

ProcessOne Push Platform Javascript library
JavaScript
7
star
50

fluux

fluux.io is a scalable messaging service (SaaS) powered by ejabberd Business Edition
7
star
51

android-wave-client

Wave client for Android mobile
Java
6
star
52

elixir_experiments

This is a repository containing Elixir experiments for ejabberd
Elixir
5
star
53

eredis_queue

Erlang Async Job Processing
Erlang
5
star
54

zlib

Native zlib driver for Erlang
Erlang
5
star
55

ecrdt

CRDT compliant data structures
Erlang
4
star
56

bfile

An interface to fast FILE I/O
C
4
star
57

p1_sip

ProcessOne SIP server component
Erlang
4
star
58

rebar3_exunit

A plugin to run Elixir ExUnit tests from rebar3 build tool
Erlang
2
star
59

google-wave-api

Wave API ported for Android
Java
2
star
60

dns-tools

Provides a programmer-friendly API for a number of undocumented OTP dns lookup, resolution, caching and configuration functions.
Erlang
2
star
61

ejabberd-po

Translation files for ejabberd
Erlang
2
star
62

soundcloud

Minimal library to implement SoundCloud client in Go
Go
1
star
63

OpenfireExporter

Export users from Openfire
1
star
64

p1_logger

ProcessOne logger for ejabberd
Erlang
1
star
65

jorge

Jorge is set of php scripts that are front-end for Oleg Palij ejabberd mod_logdb
PHP
1
star
66

ejabberdOSXPrefs

ejabberd preference panel for OSX
Objective-C
1
star
67

boxcar-ios-framework

iOS Push Framework for Boxcar
Objective-C
1
star
68

jira-security-level-plugin

This is a JIRA plugin to automatically set security level based on group of the reporter
Java
1
star