summaryrefslogtreecommitdiff
path: root/docs/src/about.md
blob: 672ae6a1f2e88648017d144057d89154590ce42a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# About
This chapter contains background information for the library. We give a general introduction to eduVPN and explain what problems this library aims to solve.

## EduVPN introduction
eduVPN-common is a library for [eduVPN](https://www.eduvpn.org/), which is a VPN by [SURF](https://www.surf.nl) and a project by [GÉANT](https://geant.org/), for research institutes such as Universities. Each institute that uses eduVPN has its own server. To discover these servers and establish a VPN connection with them, eduVPN clients are used. eduVPN has clients for each common platform:
- [Android](https://github.com/eduvpn/android)
- [Linux](https://github.com/eduvpn/python-eduvpn-client)
- [MacOS/iOS](https://github.com/eduvpn/apple)
- [Windows](https://github.com/Amebis/eduVPN)

## The problem
However, as these clients are rather similar in functionality, apart from platform specific differences, right now there is duplicate code between them. For example, the process to discover institution's servers, the authorization process (OAuth) and Wireguard key generation.
This goal of this library is to provide the common functionality between these clients into one codebase. The library is written in the [Go](https://go.dev/) language and has wrapper code for each of the languages that are used by the current clients.

The main goal is thus the following:
![](./godifferences.png)

This library tries to remove non-platform specific common functionality. This way eduVPN clients have less duplicate code.

## License
[MIT](https://github.com/jwijenbergh/eduvpn-common/blob/main/LICENSE)

## Authors
This library is written by [Steven Wallis de Vries](https://github.com/stevenwdv) and [Jeroen Wijenbergh](https://github.com/jwijenbergh), two Radboud University students that worked at SURF for their research internship.