native implementation of Session in c without Electron using the opengem framework (supports OpenGL as well as Linux framebuffer)
No offical release yet, please try the CI artifacts (mac/linux) of one of the workflow run results
./session-native
it will look for a Resources/
directory in the startup directory for CA bundle and ttf font.
- snode communication
- Session protocol encryption (sending)
- Session protocol decryption (recieving)
- initial UI
- non-blocking net-io
- Finishing MVP UI / design
- encrypted database
- identity management
- open group support
- profile support
- avatar / attachment support
- mutlithreading
- onion routing support / lokinet support
- closed group supprt
- cmake 2.8.7+
- git
- a c compiler such as gcc (4.2.1+) or llvm (mainly dev'd on llvm)
- FreeType2
- GLFW, SDL1 and/or SDL2
- GLFW is OpenGL only (and will eventually support Vulkan)
- SDL1 is software renderer (and will eventually also support OpenGL). This the only one that doesn't required a windowing system like X.
- SDL2 is OpenGL with fallback to software render (will automatically select the best for your system)
- libsodium 1.0.18+
- protobuf-c development headers
- openssl (mbed support coming soon)
- opengem (cmake will automatically download via git)
Some of these do not include mbedtls yet, if you know the correct package name for your distro, please let us know
`sudo apt-get install libfreetype6-dev libglfw3-dev libprotoc-dev libprotobuf-c-dev libsodium-dev Also will need either libmbedtls-dev (Debian 9/Ubuntu 16LTS (xenial)) or libpolarssl-dev (Debian 8 or earlier) Looks like on Ubuntu, only zesty and newer have 2.4+ of mbedtls
sudo pacman -Suy glew freetype2 mbedtls
sudo xbps-install -S glfw
sudo emerge freetype glfw
sudo brew install glfw openssl protobuf-c libsodium
Note: OpenBSD 6.1 has freetype is 1.3.1 and mbedtls is 2.2.1 which won't work (try -CURRENT)
Be sure to use gmake too
pkg_add glew glfw freetype mbedtls
cmake .
runs the configuration and detection of all the libraries you have installed on your systemmake -jX
where X is the number of CPU cores you want to use (if you use more than you have it'll slow it down)
By default it prefers GLFW and SDL1 support. We prefer SDL1 over SDL2 because it has linux frame buffer support.
USE GLFW and SDL2 cmake -DPREFER_SDL2=ON .
USE SDL1 only cmake -DIGNORE_GLFW=ON .
USE SDL2 only cmake -DPREFER_SDL2=ON -DIGNORE_GLFW=ON .
Oxen donations: LT2mP2DrmGD82gFnH16ty8ZtP6f33czpA6XgQdnuTVeT5bNGyy3vnaUezzKq1rEYyq3cvb2GBZ5LjCC6uqDyKnbvFki9aAX