Hello everyone, I would like to propose the addition of the Registry project to Elixir:
https://github.com/elixir-lang/registry The Registry project is a local and scalable key-value process storage in Elixir. It encapsulates 3 known use cases: * Process registry: to register process with dynamic names. Often Elixir developers need to rely on gproc or other tools. * Code dispatching: dispatch a module/function associated to a given key * PubSub implementation: send messages to local processes registered under a given topic There are probably other use cases waiting to be discovered. :) You can learn more in the documentation: http://elixir-lang.org/docs/registry/ The project clocks only 700LOC with documentation and performs well. We have extracted, improved and generalized the patterns from Phoenix.PubSub, the exact implementation used to manage and publish messages to 2 million subscribers <http://www.phoenixframework.org/blog/the-road-to-2-million-websocket-connections> . When benchmarking thousands of processes registering serially, it is twice slower than local atoms, albeit 33% faster than gproc. On concurrent cases, it distributes well across all cores, becoming only 15% slower than local atoms, and 3x faster than gproc (gproc seems to be serial on its default configurations). Please give it a try and let us know what you think. *José Valim* www.plataformatec.com.br Skype: jv.ptec Founder and Director of R&D -- You received this message because you are subscribed to the Google Groups "elixir-lang-core" group. To unsubscribe from this group and stop receiving emails from it, send an email to elixir-lang-core+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4LabvDu73t19riOi217yOviEg%2BFmjgFypK-4uwxwkzMug%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.