Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Elixir
  3. geocoder

geocoder

MITElixirv1.1.5

A flexible, extensible Elixir geocoding library with built-in caching and support for multiple providers.

GitHubGitHub
128 stars62 forks0 contributors

What is geocoder?

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.

Target Audience

Elixir developers building applications that require location lookup, such as mapping services, logistics platforms, or any app needing address-to-coordinate conversion.

Value Proposition

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.

Overview

The defacto geocoder for Elixir

Use Cases

Best For

  • Adding geocoding to Elixir web applications
  • Building location-aware APIs with caching
  • Switching between geocoding providers (e.g., Google Maps to OpenStreetMaps)
  • Reducing API calls with in-memory caching
  • Customizing geocoding components like HTTP clients or JSON parsers
  • Implementing reverse geocoding for coordinate-based lookups

Not Ideal For

  • Applications requiring distributed or persistent caching without custom implementation
  • Teams looking for a zero-configuration, drop-in geocoding service
  • Projects using Elixir versions older than 1.9 without access to legacy library versions

Pros & Cons

Pros

Multiple Provider Support

Comes with built-in support for Google Maps, OpenCageData, and OpenStreetMaps, allowing easy switching between services without code changes.

Extensible Architecture

Enables custom implementations for caching stores, HTTP clients, JSON codecs, and providers, as highlighted in the extensibility features for tailored solutions.

Built-in Caching

Includes an in-memory cache to reduce API calls and improve performance, essential for cost-sensitive applications handling frequent geocoding.

Flexible Configuration

Allows per-call overrides for providers and API keys, providing fine-grained control over geocoding requests, as demonstrated in the usage examples.

Cons

Elixir Version Constraints

Requires specific Elixir versions; for versions < 1.9, older library versions are needed, which may lack updates or support, adding maintenance overhead.

Setup Overhead

Integration into the supervision tree and configuration of multiple components can be complex for simple applications or rapid prototyping, compared to lighter libraries.

Limited Cache Persistence

The default in-memory cache is not persistent or distributed, necessitating custom work for production scaling or shared caching across nodes.

Frequently Asked Questions

Quick Stats

Stars128
Forks62
Contributors0
Open Issues0
Last commit5 months ago
CreatedSince 2015

Tags

#elixir#caching#geocoding#google-maps#location-services#api-client#reverse-geocoding

Built With

J
JSX
H
HTTPoison
E
Elixir
H
Hackney
J
Jason

Included in

Elixir13.1k
Auto-fetched 18 hours ago

Related Projects

geogeo

A collection of GIS functions for Elixir

Stars678
Forks98
Last commit2 months ago
geolixgeolix

IP information lookup provider

Stars196
Forks19
Last commit11 days ago
topotopo

A Geometry library for Elixir that calculates spatial relationships between two geometries

Stars173
Forks26
Last commit1 year ago
geocalcgeocalc

Geographic calculations for Elixir

Stars155
Forks23
Last commit3 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub