linguist
linguist copied to clipboard
Add :persistent_term support
Currently MemoizedVocabulary uses :ets for storing the translations.
But OTP 21.2 provides a new :persistent_term module. It has the same get/put methods like :ets, but significantly improved performance for storing mostly read-only data:
https://erlang.org/doc/man/persistent_term.html
It looks like translations are never changed since booting the application, so this module just perfectly suits for storing them.
Here I've added new config key vocabulary_backend with 2 possible options: :ets (default) and :persistent_term.
If someone will try to use :persitent_term on too old OTP version, an exception will be raised during compilation step.