Moving to full C++.
This commit is contained in:
84
README
Normal file
84
README
Normal file
@ -0,0 +1,84 @@
|
||||
===============
|
||||
*** NeoComm ***
|
||||
===============
|
||||
A decentralized chat room network aiming to work against censorship. The
|
||||
objective is to create a secure form of chat room communication similar to that
|
||||
of IRC, but decentralized in order to remove any kind of power structure or
|
||||
model, attempting to prevent censorship of the network by outside forces as
|
||||
well as censorship within the network itself.
|
||||
|
||||
NeoComm is a library and not an application unto itself, and is meant to be
|
||||
incorporated into applications to take advantage of its decentralized nature.
|
||||
Feel free to use it in your own software.
|
||||
|
||||
# Network Model
|
||||
---------------
|
||||
Unlike a federated network model, NeoComm does not require a master server or
|
||||
reliance on the benevolence of a few slave servers, but rather uses a
|
||||
decentralized P2P network model using Distributed Hash Tables[0], and more
|
||||
specifically the OpenDHT library[1]. With this model each client serves as a
|
||||
node in the network that can be used to relay information, and those that
|
||||
forward ports can even be used as entry nodes to the network itself, therefore
|
||||
removing reliance on servers hosted by particular individuals (including
|
||||
myself).
|
||||
|
||||
This also means that the larger the network gets, the more resistant it will
|
||||
become and the easier it will be for users to bypass censorship.
|
||||
|
||||
[0] https://en.wikipedia.org/wiki/Distributed_hash_table
|
||||
[1] https://github.com/savoirfairelinux/opendht
|
||||
|
||||
# API Documentation
|
||||
-------------------
|
||||
For documentation, NeoComm uses Doxygen[0], which generates easy to read HTML
|
||||
documentation from the comments within the header files of the project. If you
|
||||
install Doxygen you can generate the documentation by running the `doxygen'
|
||||
command in the root directory of the project.
|
||||
|
||||
Public documentation will be posted every major version.
|
||||
|
||||
[0] http://www.stack.nl/~dimitri/doxygen/
|
||||
|
||||
# Clients
|
||||
---------
|
||||
There are currently no clients for NeoComm. If you would like to add one to
|
||||
this list then contact <nortega@themusicinnoise.net> with relevant information.
|
||||
|
||||
# Compiling
|
||||
-----------
|
||||
To build the project you will require the following dependencies:
|
||||
|
||||
- A C++11 compatible compiler (GNU GCC is recommended)
|
||||
- OpenDHT >=v1.4.0 (https://github.com/savoirfairelinux/opendht)
|
||||
- msgpack-c (https://github.com/msgpack/msgpack-c)
|
||||
- CMake (https://cmake.org/)
|
||||
|
||||
You can then run the following commands to compile the project:
|
||||
|
||||
cd build/
|
||||
cmake ..
|
||||
make
|
||||
|
||||
This will create a static release binary of the project. If you wish to compile
|
||||
with debug options then you can append the `-DCMAKE_BUILD_TYPE=debug' flag to
|
||||
the `cmake' command. Likewise, to create a dynamic binary use the
|
||||
`-DBUILD_SHARED_LIB=ON' flag.
|
||||
|
||||
For installation or packaging you will want to use the
|
||||
`-DCMAKE_INSTALL_PREFIX=<install_dir>' option. If you are installing it
|
||||
manually then you should probably use `/usr/local/' as the installation
|
||||
directory. Otherwise, if you are packaging, please consult your distribution's
|
||||
policies.
|
||||
|
||||
# Contributing
|
||||
--------------
|
||||
NeoComm is free/libre software[0]. To contribute simply send a patch file to my
|
||||
e-mail: <nortega@themusicinnoise.net>. However, be sure to read the
|
||||
contributors guide in the `CONTRIBUTING' file before doing so.
|
||||
|
||||
[0] https://www.gnu.org/philosophy/free-sw.html
|
||||
|
||||
# License
|
||||
---------
|
||||
This project is licensed under the terms & conditions of the GNU Affero General
|
||||
Public License version 3 or greater (see `LICENSE' file for more information).
|
Reference in New Issue
Block a user