Go to file
jolavillette 28e7f791ff GUI: stop copying and sorting the channel post array in the Qt thread
setPosts() runs in the Qt thread, through postToObject(). It copied the whole
post array a fourth time and then sorted it there, so for a channel with a few
thousand posts the interface was frozen for the duration of both.

Move the sort into the loader thread in update_posts(), where the array is
already sitting after the service call, and have setPosts() take its argument
by rvalue reference so the array is moved in rather than copied. The sort is
kept in setPosts() as a safety net: on an already ordered array it only runs
comparisons and moves nothing.

Combined with the libretroshare side making posts movable, the array is now
handed from the data store to the model without a single deep copy of a
thumbnail.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-31 22:34:12 +02:00
.github/workflows Fix GitLab mirror failing on GitHub PR refs 2026-07-23 18:10:46 +02:00
.reuse Improve license according to REUSE 3.0 2019-12-18 17:57:20 +01:00
build_scripts Fix and upgrade GitlabCI 2026-06-17 01:31:19 +02:00
data .desktop file remove absolute path for icons; fixes #2925 2025-08-12 22:39:27 +02:00
jsonapi-generator Integrate python3 JSON API generator into libretroshare 2021-12-13 18:46:56 +01:00
libbitdht@4355ea96b2 Purge retroshare-service stale Android code 2026-06-14 16:24:55 +02:00
libretroshare@cafaaa1964 Update submodules 2026-06-14 15:53:03 +02:00
LICENSES Improve license according to REUSE 3.0 2019-12-18 17:57:20 +01:00
openpgpsdk@40db9d6bfe Purge retroshare-service stale Android code 2026-06-14 16:24:55 +02:00
plugins gui(feedreader): add "Mark all as unread" alongside "Mark all as read" 2026-07-25 13:31:47 +02:00
retroshare-friendserver build(friendserver): link OpenSSL again (needed via inlined libretroshare headers) 2026-06-06 19:01:11 +02:00
retroshare-gui GUI: stop copying and sorting the channel post array in the Qt thread 2026-07-31 22:34:12 +02:00
retroshare-service Fix WEBUI dependent option value in gui and service 2026-06-16 23:35:30 +02:00
retroshare-webui@a28d77fe9a Purge retroshare-service stale Android code 2026-06-14 16:24:55 +02:00
supportlibs Merge branch 'master' into CMakeMigration-Modular-CrossPlatform 2026-06-15 00:20:57 +02:00
tests Fix G10h4ck contributions copyright attribution 2026-06-14 16:10:56 +02:00
.gitignore Wiki: Core event logic and cleanup 2026-01-05 23:16:00 +00:00
.gitlab-ci.yml More attempts at fixing GitlabCI 2023-11-27 02:08:21 +01:00
.gitmodules use absolute URLs for submodules 2026-01-18 10:05:39 -05:00
.travis.yml Disable Travis CI Linux to save scarce credits 2021-09-02 12:07:04 +02:00
BUILD-cmake.md docs: add packaging and deployment section for Windows/MSYS2 in BUILD-cmake.md 2026-07-15 13:34:59 +02:00
CMakeLists.txt refactor(cmake): rename "monorepo" -> super-project terminology 2026-06-15 19:41:45 +02:00
COPYING Add COPYING 2020-04-01 16:35:22 +02:00
README.md Fix & improve guide 2025-09-17 21:43:51 +02:00
retroshare.pri fix(gui): give RetroShare GUI its own version, independent from libretroshare 2026-07-04 11:40:36 +02:00
RetroShare.pro added switch to compile with rnp or openpgp-sdk 2024-08-11 16:43:20 +02:00

RetroShare

RetroShare is a decentralized, private, secure, cross-platform, communication toolkit. RetroShare provides file sharing, chat, messages, forums, channels, boards and more.

GitHub release Downloads MINGW64 Qt5 Build UCRT64 Qt5 Build MINGW64 Qt6 Build GNU/Linux (via Gitlab CI) libretroshare GNU/Linux, Android (via Gitlab CI) Ask DeepWiki

Get the source

Clone this repository, enter the directory and then get the submodules with the following command

git submodule update --init --remote --force libbitdht/ libretroshare/ openpgpsdk/

Compilation

Short of comprehensive and updated documentation on how to build RetroShare (for the many supported platforms it runs on), scripts and recipes are provided in the aim of creating packages for the supported platforms (and more) in the build_scripts directory of this repository.

Compilation on Windows

Follow this file : WindowsMSys2_InstallGuide

With QtCreator : Windows-QtCreator-InstallGuide

Compilation on MacOSX

Follow this file : MacOS_X_InstallGuide

Compilation on Linux

Follow this file : Linux_InstallGuide

Releases

Latest release here

Other Builds RetroShare Downloads

Documentation