Skip to content
Christian Beier edited this page Feb 18, 2016 · 9 revisions

How to apply for / propose a project

If you are interested in a project, please contact us on the mailing mailing list. Best would be to include a quick roundup of how familiar you already are with the topic.

If you have any new ideas not listed, please propose them on the aforementioned mailing list for discussion before adding them here. If finally doing so, please make sure to use the foobar template provided at the bottom of the page.

Legal

All contributions must be available under GPLv2, the main LibVNC license.

Comms and Hosting

We prefer to do development in the open, with communication happening on the mailing list and code hosted here on GitHub, where the main repository is.

Project Ideas

VeNCrypt support

There has been some work to support encryption via VeNCrypt on the server side (LibVNCClient already has support for that for some time), but it was never finished. Tasks to be done:

  • verify that OpenSSL-based LibVNCServer supports VeNCrypt alright
  • test GNU TLS-based LibVNCServer support
  • add tests using our very own LibVNCClient's VeNCrypt support
  • verify that other VNC clients can communicate with the server via VeNCrypt (and possibly fix)
Difficulty
8 (of 10)
Importance
8 (of 10)
Potential mentors
@dscho
Experience needed
C, encryption, OpenSSL, GNU TLS
See also
https://sourceforge.net/projects/vencrypt/

Finalise MulticastVNC

A proof of concept implementation of VNC-over-multicast exists and there is extensive benchmarking and documentation available. The implementation awaits integration into our upstream source tree since a while. Some things on the TODO list are:

  • Implement Multicast vs Unicast statistics inside LibVNC
  • Implement a server-push mechanism.
  • Implement additional encodings.
  • Inspect some possible error corner cases.
Difficulty
8 (of 10)
Importance
5 (of 10)
Potential mentors
@bk138
Experience needed
some decent knowledge of C, Unix Network Programming
See also
https://github.com/bk138/libvncserver, http://edoc.hu-berlin.de/master/beier-christian-2011-07-19/PDF/beier.pdf

Java Bindings

A nice and straightforward project that would allow using LibVNC in Java/(Android!) applications much more easily. This includes reading up about the fundamentals of JNI, checking the automation utilities that exist out there, and finally creating Java bindings for LibVNC[Server|Client].

Difficulty
4 (of 10)
Importance
6 (of 10)
Potential mentors
@bk138
Experience needed
Java, C, JNI
See also
https://en.wikipedia.org/wiki/Java_Native_Interface

Python Bindings

The LibVNC[Server|Client] Python bindings will allow writing VNC servers and clients in Python which currently does not have a complete library for the RFB protocol. The main target is Python 3.

Difficulty
4 (of 10)
Importance
6 (of 10)
Potential mentors
@bk138
Experience needed
Python, C
See also
https://wiki.python.org/moin/IntegratingPythonWithOtherLanguages

Project Idea Template

foobar project

Summary

Difficulty
1 (of 10)
Importance
1 (of 10)
Potential mentors
x@y.net
Experience needed
x86 assembler, C
See also