A flexible, extensible Elixir geocoding library with built-in caching and support for multiple providers.
Geocoder is an Elixir library that provides geocoding and reverse geocoding functionality, converting addresses to geographic coordinates and vice versa. It solves the problem of integrating location-based services into Elixir applications by offering a simple, cached, and extensible interface.
Elixir developers building applications that require location lookup, such as mapping services, logistics platforms, or any app needing address-to-coordinate conversion.
Developers choose Geocoder for its flexibility and extensibility—it supports multiple providers, allows custom components, and includes built-in caching to optimize performance and reduce external API costs.
The defacto geocoder for Elixir
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Comes with built-in support for Google Maps, OpenCageData, and OpenStreetMaps, allowing easy switching between services without code changes.
Enables custom implementations for caching stores, HTTP clients, JSON codecs, and providers, as highlighted in the extensibility features for tailored solutions.
Includes an in-memory cache to reduce API calls and improve performance, essential for cost-sensitive applications handling frequent geocoding.
Allows per-call overrides for providers and API keys, providing fine-grained control over geocoding requests, as demonstrated in the usage examples.
Requires specific Elixir versions; for versions < 1.9, older library versions are needed, which may lack updates or support, adding maintenance overhead.
Integration into the supervision tree and configuration of multiple components can be complex for simple applications or rapid prototyping, compared to lighter libraries.
The default in-memory cache is not persistent or distributed, necessitating custom work for production scaling or shared caching across nodes.