Skip to content

Conversation

@anesthetice
Copy link
Contributor

@anesthetice anesthetice commented Nov 2, 2025

The overall goal of this PR is to improve the handling of .rnote save files.

tl;dr

  • Shorter loading times (~10x improvement*)
  • Shorter saving times (~6x improvement*)
  • Smaller file sizes (~12% reduction)
  • Safer saving mechanism

* improvement factor measured only with respect to EngineSnapshot <-> bytes

image

Main changes:

  • parallelized serialization and compression
  • direct loading pathway when compatible
  • for compression, using zstd instead of gzip
  • atomic file saving (also applied for autosaves)

Here's a diagram of the simplified process to get from EngineSnapshot to a .rnote save file and vice-versa.

diagram

fixes #1128

Note that this PR is a re-write of #1177, some of the important changes being:

  • (+) parallelism for serialization and compression
  • (+) the introduction of a file version separate from the version of Rnote
  • (-) scrapped save preferences (not worth complexity cost)
  • (-) scrapped alternative serialization methods (for compatibility reasons)

@anesthetice anesthetice changed the title Re: new rnote file format, zstd compression, serialization parallelism™, atomic file saving Re: new rnote file format with improved handling (parallelism and zstd), atomic file saving Nov 16, 2025
@anesthetice anesthetice marked this pull request as ready for review November 19, 2025 19:21
@anesthetice
Copy link
Contributor Author

@flxzt, @Doublonmousse, I'd say this PR is ready for review. Take all the time you need of course, and feel free to ask me for information, changes, etc. 🫡

@anesthetice anesthetice changed the title Re: new rnote file format with improved handling (parallelism and zstd), atomic file saving re: New higher-performance rnote file format, and atomic file saving Nov 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

More resilient file saving by a two-stage file save process

1 participant