-
Notifications
You must be signed in to change notification settings - Fork 3
FAQ
First of all updates, new features and also a new approach how to deal with Etherpad. I'm committed to develop Etherpad further in my leasure time. If you'd like to support me you can tip me on Kofi. Please don't feel obligated!
If you've already migrated to the new implementation you will notice a few differents. There is only one static file. Everything required for running Etherpad is contained in this file from plugins, language files and of course the frontend. Also the cli, the loadtest and migration scripts are embedded in the file. Please check the readme of this repository for more information. Of course there is everywhere a --help so that you can explore the different command options. While in the previous Etherpad you had to install the Markdown plugin, Abiword or Libre office to export as doc, odt etc. Etherpad-Go allows you to export these formats built in.
Also you can deploy now Etherpad everywhere you like to the binary requires less than 50 MB so you can also run it on a Raspberry Pi or other low power computers.
Additionally there are already some improvements in place. E.g. when having the ep_align plugin activated and exporting e.g. as PDF it also takes into consideration that you aligned it at the right or center.
With the new layout and architecture other pain points can also be eliminated quite easily e.g. only displaying Delete pad button for the initial creator of the pad.
Well the problem is that I tried a lot of times. It is not easy to migrate as it is just JavaScript. The Typescript typesystem is not strongly typed and even small updates broke Etherpad at some places or any plugin related to it. Moving from the old CommonJS to the new ESM style made a lot of plugins break and to which plugin version should I bump so older Etherpad instances don't break easily.
I want to keep the Etherpad-Lite repository to be as is. That way people can choose when or if they want to upgrade. Also getting Etherpad-Go to feature parity in terms of plugins takes a long time. There are around 300 plugins so there is still some time to go. If you have a favorite plugin not yet implemented in Etherpad please drop an issue or a notice on Discord.
It is production ready in the sense that the databases are now fixed. There won't be any more schema changes and if so there will always be a new migration so that you can bet on easy upgrades. Please be aware that this version is not yet completely finished - there are more than 1000 backend tests and accumulated 290 frontend playwright tests that run on every commit. So you can be sure that future updates won't break anything.
For what's missing: Mostly the plugin system with missing plugins and also the admin area which may contain empty pages or still not ideal functionality.
If you encounter an error in your setup, migration or when handling a lot of Etherpad users at the same time please report them
For now I've committed for only SQL databases, namely SQLite, MySQL and Postgres. For new starters that are uncertain try Postgres. Postgres is the fastest and production ready database. MySQL can be a bit slow when you have a large userbase, SQLite only works single threaded so it could be that you get 'The database is busy' messages but Postgres is by far the fastest and also fine tuned database for Etherpad-Go.
While Rust offers slightly better performance and a big advantage compile time safety it is also fundamentaly different to write. Porting a project from JavaScript to Rust requires reinventing the wheel and you have to introduce large code changes which in turn if there is an error or a difference between previous and next version is hard to trace.