Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Network protocol for real-time sharing between graphical applications

License

Unknown and 2 other licenses found

Licenses found

Unknown
LICENSE
BSD-2-Clause
BSD-LICENSE
GPL-2.0
GPL-LICENSE
NotificationsYou must be signed in to change notification settings

verse/verse

Travis CI Build StatusCoverage StatusCoverity Scan Build Status

Verse 2.0 is network protocol for real-time sharing of 3D data. It is successorof old Verse protocol developed at KTH. Verse 2.0 is still in alpha version.

License

The source code of Verse library is licensed under BSD license. This librarycould be used for implementation of Verse client. The source code of Verseserver is licensed under GNU GPL 2.0 license. For details look at filesBSD-LICENSE and GPL-LICENSE.

Important links

Compile

Compilation of Verse 2.0 is tested only on Linux now. Some librariesand development tools are required. Porting to other UNIX like OS shouldbe possible. Support for Mac OS X and other BSD like UNIXese is onlyexperimental.

Requirements

Building

To compile Verse server, libverse.so and example of Verseclient open terminal, go to root of verse source code and type:

$ mkdir ./build$ cd ./build$ cmake ../$ make$ sudo make install

If you want to build debug version, then you have to run cmakewith following parameter:

$ cmake -DCMAKE_BUILD_TYPE=Debug ../

If you want to build Verse with Clang, then you have to do more

$ export CC=/usr/bin/clang$ export CXX=/usr/bin/clang++$ mkdir ./build$ cd ./build$ cmake ../$ make$ sudo make install

Folders

  • ./configis directory with example of users.csv file
  • ./doccontains doxyfile for generated doxygen documentation
  • ./examplecontains source code of example Verse clients
  • ./includecontains all .h files
  • ./pkicontains example of certificate and private key
  • ./srccontains source code
  • ./libsource code for library (used by client as well by server)
  • ./lib/apisource code of API
  • ./lib/clientsource code specific for Verse clients
  • ./lib/commonsource code shared with Verse server and Verse client
  • ./serversource code specified for Verse server
  • ./server/mongodbsource code used for saving and loading data from MongoDB
  • ./pythoncontains source code for Python module implemented in C
  • ./unittestscontains source code of unit tests

Installation

The verse server and example of verse client is not necessary to install to thesystem. Before you want to run Verse server you should edit your "database"of users. Go to the ./config folder and edit users.csv:

$ cd ./config

and edit user.csv with your favorite text editor, e.g. vim:

$ vim users.csv

Using

The Verse server can be executed from build directory:

$ ./bin/verse_server

Example of Verse client could be executed from this directory too:

$ ./bin/verse_client localhost

The example of Verse client and Verse server can be started with severalarguments. For more details run programs with '-h' option.

When you want to try test Verse client implemented Python, then you have toset up system variable PYTHONPATH to include directory containing Pythonmodule "verse.so" :

$ export PYTHONPATH=/path/to/directory/with/verse/module

Then it is possible to run this client:

$ python3 verse_client.py

MongoDB

It is possible to use Verse server without support of MongoDB, but all dataare stored only in memory and when server is stopped, then all data are lost.For production purpose it is recommended to configure using MongoDB inserver.ini file. Implementation of MongoDB is currently limited, because Verseserver load all data to memory during start and saves all data to MongoDB, whenserver is stopped.

Firewalls

If you use firewall and you want to connect on Verse server, then you will needto open several ports. The Verse server listen on TCP port 12345 and itnegotiate new UDP ports in range: 20000 - 20009 (this port numbers and portranges will be possible to change in configuration files in the future).

When you use Linux OS, then you can use iptables for it. You should be familiarwith iptables. If not, then read some documentation about iptables first. Toopen TCP port use something like this:

$ iptables -I INPUT 10 \ # this add this rule before 10th rule (change this!)  -m state --state NEW \ # use this rule only for the first packet (optional)  -s 1.2.3.4/16 \        # allow connection only from some subnet (optional)  -p tcp --dport 12345 \ # own opening of TCP port 12345  -j ACCEPT              # accept this packet

To open UDP port in range 50000 - 50009 use something like this:

$ iptables -I INPUT 11 \  -m state --state NEW \  -s 1.2.3.4/16 \  -p udp --dport 50000:50009 \ # open UDP ports in range: 50000 - 50009  -j ACCEPT

Verse server and all verse client can use IPv6. Configuration of ip6tables isvery similar:

$ ip6tables -I INPUT 10 \  -m state --state NEW \  -p tcp --dport 12345 \  -j ACCEPT$ ip6tables -I INPUT 11 \  -m state --state NEW \  -p udp --dport 50000:50009  -j ACCEPT

Verification

Main parts of Verse protocol were verified using Promela programming languageand tool called Spin. For more details go to the directory ./misc/promela.

Testing

If you want to test Verse library, then you have to compile Verse with support forunit test framework called Check and then you can perform several unit tests. Torun unit tests you have to go to the build directory and run make with targettest:

$ cd ./build$ make test

Contacts

  • IRC: irc.freenode.net in channel #verse
  • Mailing list:verse-dev@blender.org
  • Main developer: Jiri Hnidek
  • E-mail:jiri.hnidek@tul.cz
  • Phone: +420 485 35 3695
  • Address: Studentska 2, 461 17, Liberec 1, Czech Republic

[8]ページ先頭

©2009-2025 Movatter.jp