g-andrade
Hi forum,
I’m pleased to announce the release of locus 1.0.0, an Erlang/OTP library that allows you to pinpoint the country, city or ASN of IPv4 and IPv6 addresses, using MaxMind’s GeoLite2 databases.
The MaxMind databases you choose are downloaded on-demand, cached on the filesystem and updated automatically.
The databases are loaded into memory (mostly) as-is; reference counted binaries are shared with the application callers using ETS tables, and the original binary search tree is used to lookup addresses. The data for each entry is decoded on the fly upon successful lookups.
Trending in Announcing
Flop is an Elixir library that applies filtering, ordering and pagination parameters to your Ecto queries.
offset-based pagination with...
New
I needed to reuse React components from my Chrome extension in my Phoenix/LiveView backend. I noticed that for Svelte/Vue, there are live...
New
I released Doggo, a collection of unstyled Phoenix components.
https://github.com/woylie/doggo
Features
Unstyled Phoenix components....
New
Hi there! We created Gust: A task orchestrator inspired by Airflow.
For those who have never heard about Aiflow, it’s a Python-based wor...
New
Hello
Published a new library - ProcessHub!
ProcessHub is a library designed to manage process distribution within the Elixir cluster. ...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New
Other Trending Topics
I am happy to introduce the very α version of the new programming language compiled to BEAM.
Welcome Cure.
It has literally three kille...
New
Hi everyone!
The first release candidate for the Expert language server project is now available!
We’ve published a press release detai...
New
With AI doing more of the implementation work, I’ve been wondering how much coding I should deliberately keep doing myself.
My main conc...
New
It’s not that it’s vocabulary is too advanced. It’s something worse.
I get lost trying to follow even a paragraph written by Claude. It’...
New
This showed up on my feed.. anyone heard of it? Just hype?
Ox Alpha is a reasoning model designed for coding, sustained ag...
New
Hey folks,
I just published a post about Hologram’s funding and where the project goes next - the short version:
Curiosum as Main Spons...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixirconf-us
- #ai
- #blog-post
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #hex
- #security
- #metaprogramming










Showing Posts 1 to 10- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
g-andrade
Hi forum,
Locus 1.1.1 was released today.
Added:
:get_infoDocumentation was moved to HexDocs and test coverage was substantially increased.
brightball
Great work! That’s a hugely useful dataset to have easy access too.
Without having looked heavily at what you’ve done, what is the size of the database?
g-andrade
Thanks!
It depends on the database you pick. MaxMind provides three databases for free:
As the databases are, for the most part, used in their raw form, the expected memory consumption should correspond roughly one-to-one.
They’re not, however, included in the package; they’re downloaded on demand, and caching is leveraged to minimize likelihood of unavailability upon subsequent application boots. My main motivation for this was to avoid some of the shortcomings of egeoip, where database updates were committed to the repository, which grew ever larger.
I do plan to support explicit loading from local filesystem, with or without support for updating from network after having that as a starting point. But because the semantics of this, and all its edge cases, aren’t still quite clear in my head, I’ve been delaying it, as I want to keep things as simple as possible for now.
OvermindDL1
Whooo awesome there!
g-andrade
Hi forum,
Locus 1.3.0 was released today.
Added:
Fixed:
The timezone / DST fixes mentioned above were also backported to earlier versions and tagged under:
Links:
g-andrade
Hello forum,
Locus 1.6.0 was released today.
Added:
locus:analyze/1)Changed:
Fixed:
Links:
g-andrade
Hello again,
Locus 1.7.0 was released today.
Added
.tarfiles).mmdband.mmdb.gzfiles)wait_for_loaders/2API method for concurrently awaiting multiple database loadersChanged
.mmdbfiles rather than tarballssimple_one_for_onesupervisorcertifi[2.4.2 => 2.5.1]ssl_verify_fun[1.1.4 => 1.1.5]Removed
file://-prefixed URLsFixed
.mmdbfile extensions within tarballsloggermessages on OTP 21.1+Links:
g-andrade
I’m pleased to announce the release of Locus 1.8.0 .
Added
Changed
stacktrace_compatversion [1.0.2 => 1.1.1]Removed
Fixed
locusmanagerial processes keeping references to old binaries, upon a database update, for a potentially unlimited time (OTP 20+ only)Links:
g-andrade
Locus 1.9.0, after one month in beta, has been released!
Added
Deprecated
https://geolite.maxmind.com/download/geoip/database/GeoLite2-...database URLsLinks:
g-andrade
Locus 1.10.0 was released today (a rather short release cycle this time.)
Added
content-lengthheader:await_loaderAPI function which, contrary to:wait_for_loader, will await readiness up to the entire specified interval (rather than return upon the first encountered failure)Changed
Deprecated
:wait_for_loaderand:wait_for_loadersAPI functions (use:await_loaderand:await_loadersinstead)Fixed
locus_loader:event()typelocus_maxmind_download:msg()andlocus_maxmind_download:event()typesLinks: