4b562c3aa7
Gonna make this library in a C compatible way. |
||
---|---|---|
build | ||
.gitignore | ||
CMakeLists.txt | ||
CONTRIBUTING.md | ||
Doxyfile | ||
LICENSE.md | ||
README.md |
NeoComm
NeoComm is a lightweight completely decentralized and anti-censorship IRC replacement network. The objective of this network is to create a secure form of group instant communication similar to IRC but decentralizing the network, and as a consequence hindering censorship within the network and protecting the network's endurance against malevolent entities that may try to block access to the network.
This repository provides a library with interfaces by which you can access the network, which you are able to use in your own software under the terms & conditions of the library's license.
Network Model
NeoComm tries to avoid any dependency on any central servers in order to avoid central control and censorship of the network itself. For this reason NeoComm works using the torrent DHT network, meaning that the more you connect to the network the less reliant you are on any given node and new users can connect to specific nodes if they are blocked to the default ones. Nodes can be remembered from the last connection in order to reconnect to these same nodes instead of the default ones.
Roadmap
What follows is a list roadmap of features and the (approximate) versions in which they will be implemented. The API will only change in major versions of the library, while minor versions will be dedicated to internal improvements and patch versions to small fixes that got past the release.
- v1.0-alpha:
- Node connectivity
- Messages properly sent and received
- v1.0-beta:
- Channel functionality
- Message encryption
- P2P Private messages
- v1.0:
- SOCKS4a/SOCKS5 proxy support
- HTTP proxy support
- v2.0:
- P2P File transfer
- Memos (with TTL)
API Documentation
NeoComm uses Doxygen to generate its documentation (for NeoComm developers please refer to the contributing section) which generates HTML documentation, which you can do by running doxygen
in the root directory of the project or by using the graphical wizard.
Public documentation will be published with every major release.
Clients
There are currently no clients available.
Compiling
To build this project you will need a C++11 compatible compiler (GCC is recommended), the OpenDHT library, msgpack-c, and the CMake build system. To build run the following commands from the root directory of the project.
$ cd build/
$ cmake ..
$ make
By default this will build a release
build, if you require a debug build run the cmake
command with the additional flag -DCMAKE_BUILD_TYPE=debug
. It will also build a static library by default, in order to compile a dynamic library add the flag -DBUILD_SHARED_LIB=ON
.
Contributing
NeoComm is Free/Libre Open Source Software (FLOSS) and as such is community oriented. Contributions are greatly appreciated in order to keep the project up-to-date. If you would like to contribute something then please read over the contribution guide before making a pull request. If you're looking for something to contribute have a look at our issue tracker for bugs/requests.
License
This project is licensed under the terms & conditions of the GNU Affero General Public License version 3 or greater unless stated otherwise in the file.