{"id":24096506,"url":"https://github.com/odilitime/session-native","last_synced_at":"2026-05-11T01:43:09.579Z","repository":{"id":80754730,"uuid":"337934495","full_name":"odilitime/session-native","owner":"odilitime","description":"native implementation of Session in c without Electron using the opengem framework (OpenGL, software, linux framebuffer)","archived":false,"fork":false,"pushed_at":"2021-05-30T08:03:54.000Z","size":507,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-10T12:58:54.461Z","etag":null,"topics":["discord","ee2e","irc","matrix","opengem","session","signal","tavrn","telegram"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/odilitime.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-11T05:04:25.000Z","updated_at":"2021-05-30T08:03:56.000Z","dependencies_parsed_at":"2023-02-28T17:15:47.229Z","dependency_job_id":null,"html_url":"https://github.com/odilitime/session-native","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/odilitime%2Fsession-native","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/odilitime%2Fsession-native/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/odilitime%2Fsession-native/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/odilitime%2Fsession-native/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/odilitime","download_url":"https://codeload.github.com/odilitime/session-native/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241020526,"owners_count":19895454,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["discord","ee2e","irc","matrix","opengem","session","signal","tavrn","telegram"],"created_at":"2025-01-10T12:55:18.928Z","updated_at":"2026-05-11T01:43:09.543Z","avatar_url":"https://github.com/odilitime.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"![CMake](https://github.com/odilitime/session-native/workflows/CMake/badge.svg)\n# session-native\nnative implementation of Session in c without Electron using the opengem framework (supports OpenGL as well as Linux framebuffer)\n\n## Binaries\n[No offical release yet, please try the CI artifacts (mac/linux) of one of the workflow run results](https://github.com/odilitime/session-native/actions?query=workflow%3ACMake)\n\n## how to run\n\n`./session-native`\nit will look for a `Resources/` directory in the startup directory for CA bundle and ttf font.\n\n## Milestones\n\n### Supports\n\n- snode communication\n- Session protocol encryption (sending)\n- Session protocol decryption (recieving)\n- initial UI\n- non-blocking net-io\n\n### Working On\n- Finishing MVP UI / design\n- encrypted database\n- identity management\n- open group support\n- profile support\n- avatar / attachment support\n- mutlithreading\n- onion routing support / lokinet support\n- closed group supprt\n\n## Build Information\n\n### Build requirements\n\n- [cmake 2.8.7+](https://cmake.org/)\n- git\n- a c compiler such as gcc (4.2.1+) or llvm (mainly dev'd on llvm)\n- [FreeType2](https://www.freetype.org/)\n- [GLFW](https://www.glfw.org/), [SDL1](https://www.libsdl.org/download-1.2.php) and/or [SDL2](https://www.libsdl.org/download-2.0.php)\n   - GLFW is OpenGL only (and will eventually support Vulkan)\n   - SDL1 is software renderer (and will eventually also support OpenGL). This the only one that doesn't required a windowing system like X.\n   - SDL2 is OpenGL with fallback to software render (will automatically select the best for your system)\n- libsodium 1.0.18+\n- protobuf-c development headers\n- openssl (mbed support coming soon)\n- opengem (cmake will automatically download via git)\n\n#### Package shortucts\nSome of these do not include mbedtls yet, if you know the correct package name for your distro, please let us know\n\n##### Debian (and derivates)\n`sudo apt-get install libfreetype6-dev libglfw3-dev libprotoc-dev libprotobuf-c-dev libsodium-dev\nAlso will need either libmbedtls-dev (Debian 9/Ubuntu 16LTS (xenial)) or libpolarssl-dev (Debian 8 or earlier)\nLooks like on Ubuntu, only zesty and newer have 2.4+ of mbedtls\n\n##### Arch (and derivates)\n`sudo pacman -Suy glew freetype2 mbedtls`\n\n##### Void\n`sudo xbps-install -S glfw`\n\n##### Gentoo\n`sudo emerge freetype glfw`\n\n#### Mac OS X (Brew)\n`sudo brew install glfw openssl protobuf-c libsodium`\n\n#### OpenBSD\nNote: OpenBSD 6.1 has freetype is 1.3.1 and mbedtls is 2.2.1 which won't work (try -CURRENT)\nBe sure to use gmake too\n`pkg_add glew glfw freetype mbedtls`\n\n\n### how to build\n\n- `cmake .` runs the configuration and detection of all the libraries you have installed on your system\n- `make -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)\n\n### Special build options\n\nBy default it prefers GLFW and SDL1 support. We prefer SDL1 over SDL2 because it has linux frame buffer support.\n\nUSE GLFW and SDL2 `cmake -DPREFER_SDL2=ON .`\nUSE SDL1 only `cmake -DIGNORE_GLFW=ON .`\nUSE SDL2 only `cmake -DPREFER_SDL2=ON -DIGNORE_GLFW=ON .`\n\n# Support my work\n\nOxen donations:\nLT2mP2DrmGD82gFnH16ty8ZtP6f33czpA6XgQdnuTVeT5bNGyy3vnaUezzKq1rEYyq3cvb2GBZ5LjCC6uqDyKnbvFki9aAX\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fodilitime%2Fsession-native","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fodilitime%2Fsession-native","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fodilitime%2Fsession-native/lists"}