Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/teliosdev/excom

Chat implementation.
https://github.com/teliosdev/excom

Last synced: 1 day ago
JSON representation

Chat implementation.

Awesome Lists containing this project

README

        

# excom [![Build Status](https://travis-ci.org/medcat/excom.png?branch=master)](https://travis-ci.org/medcat/excom)

An alternative to current chat implementations.

## Compiling

Before the project can be compiled, the `configure` script must be
run. It generates a header file that is used by the project.

The project uses [libtoml](https://github.com/ajwans/libtoml), which
is under the 3 clause BSD license.

This project uses `make`. Sorry, I'm comfortable with `make`, and I
know how to use it. However, building excom without make shouldn't
be that difficult. Excom requires the c99 standard, excluding
`stdbool.h` (it will use it if it can). Some defines and how you can
use them:


Define
Possible Values
Meaning


EXCOM_NO_STDBOOL
none
If this is defined, excom will use its own stdbool implementation.


EXCOM_INCLUDE_SERVER_CLIENT
none
If this is defined, excom will include a very basic implementation of a server that can handle reading and writing to clients. It will not be able to handle anything more than that, though.


EXCOM_EPOLL
none
If this is defined, excom will try to use epoll.


EXCOM_KQUEUE
none
If this is defined, excom will try to use kqueue. If it does not exist on the system, the compiler will error with fatal error: sys/event.h: No such file or directory. Note: the support for kqueue in excom is still a little shakey, since I cannot test it in my current environment.

After you've defined what you need to, the main body of the code
should be able to be compiled. The Makefile compiles it into a
static library, but you can compile it into a shared object if you so
wish.

## Documentation

One of the primary goals of this library is to have 100%
documentation - every function, every define, every struct. This is
to ensure that the code is understandable as to how to use it. The
code comes with a Doxyfile to allow doxygen to generate a site for the
documentation.

## Usage

Sadly, in the current state, the library can't really be used :(

But we're getting there!

## Contribution

You wanna contribute? Awesome!

1. Fork it ()
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request