fives-team / FiVES

Flexible Virtual Environment Server
GNU Lesser General Public License v3.0
4 stars 4 forks source link

License badge Documentation badge Docker badge Support badge

FiVES

Flexible Virtual Environment Server

The goal of this project is to build a flexible virtual world server that can be used to build various synchronized applications with different requirements. Its architecture is highly modular, providing a lightweight base application with a very flexible plugin mechanism.

FiVES is part of the FIWARE project, funded by the European Union. There, FiVES is provided as alternative implementation of the 'Synchronization' Generic Enabler. For more information, please refer to http://www.fiware.org

Project Structure

Directories

The following directories exist in the repository:

Directory Purpose
Core contains core libraries for the server
doc contains files for generating documentation
Misc different tools for testing
FIVES contains the server application
Plugins contains server plugins
ServiceBus Contains the Plugin-Service-Orchestration bus
ThirdParty contains 3rd-party libraries not available in nuGet
WebClient contains Web-client for testing the server

The following directories may be generated dynamically:

Directory Purpose
Binaries contains compiled plugins and protocols with all required third-party dependencies and debug files. New versions of plugins and protocols are automatically copied here. The FiVES application automatically loads plugins and protocols from this directory. This makes the edit-compile-test cycle easier.
packages created by nuGet to contain 3rd party libraries
test-results created by MonoDevelop to contain unit test results

Overall Architecture

The FiVES project consists of three main parts:

Third-party libraries

We use nuGet to manage third-party libraries. If you want to build FIVES, please install nuGet into your IDE and restore all packages. Some libraries that are not available in nuGet are located in ThirdParty directory.

Getting Started

Building and running FiVES

All third party libraries that are needed to build FiVES are either supplied within the project, or managed by the NuGet package manager: http://www.nuget.org . Simply add NuGet to your IDE, select to restore packages on build, and build the entire solution.

FiVES can be built and run on both Windows and Linux system.

To run FiVES, just double click FIVES.exe (Windows), or use mono to run FiVES (Linux) by typing mono FIVES.exe . FiVES requires Administrator rights under Windows to be allowed to open HTTP listener ports.

Quick Start Guides

There are currently the following resources that allow you to directly dive into the FiVES development:

License

FiVES is provided subject to terms of the GNU LGPL v3 license. Please refer to the LICENSE file for more information. All third-party libraries come with their own licenses. Details about third party licenses are given in the Readme file in the third party folder, and on the project webpages of the different projects.