3 ms·
If you would actually read the links I posted there is a number of technical reasons listed: 1. Removal of the unstable, unmaintained code - e.g. WebUI, filesy
by xvilka 6y ago
If you would actually read the links I posted there is a number of technical reasons listed:
1. Removal of the unstable, unmaintained code - e.g. WebUI, filesystems mounting (it was based on the ancient GRUB code).
2. Migrating from the copy-pasted code to using Meson subprojects, which made the update easier and packaging effortless.
3. Continuing to use the newshell (tree-sitter-based parser) instead of every command parsing itself manually (old code used giant switch cases that parsed arguments independently for every separate command basically).
4. Not in the FAQ but also the removal of `r_core_cmd()` calls that were calling the commands directly in the code instead of using proper APIs. It's still work in progress but we removed almost a half of such calls and will continue until 99% of them are removed.
5. We also focus on better performance and general ease of use as a library - better code documentation, better APIs, unit and API integration tests.
6. While Projects existed in the original project they were just a sequence of the commands, while Rizin migrated to the completely different concept of snapshot serialization and storing it as a KV (Key-Value) database.
If you compare the code the difference compounded significantly already.