<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="174927" data-post-id="174927">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="g-andrade" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/g-andrade/120/24455_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  g-andrade
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hi everyone,</p>
<p><a href="https://github.com/g-andrade/locus/" rel="noopener nofollow ugc">Locus 1.11.0</a> was released today.</p>
<h3><a name="p-174927-added-1" class="anchor" href="#p-174927-added-1" aria-label="Heading link" rel="nofollow"></a>Added</h3>
<ul>
<li>support for HTTPS redirections across distinct hostnames</li>
<li>support for not censoring license keys from MaxMind URLs mentioned in logs</li>
<li>support for censorship of arbitrary query arguments from HTTP URLs mentioned in logs</li>
<li>truncation of large HTTP URLs mentioned in logs</li>
<li><code>download_redirected</code> events to HTTP downloads</li>
<li><code>too_many_redirections</code> and <code>invalid_redirection</code> reasons to HTTP download failures</li>
<li>mention of compatibility with other providers</li>
</ul>
<h3><a name="p-174927-changed-2" class="anchor" href="#p-174927-changed-2" aria-label="Heading link" rel="nofollow"></a>Changed</h3>
<ul>
<li>consumer-subscribed events as to follow the same URL censorship rules as the built-in logger</li>
<li>documented MaxMind database edition format from atoms to tuples while keeping retrocompatibility</li>
</ul>
<p>Links:</p>
<ul>
<li><a href="https://hex.pm/packages/locus/1.11.0" rel="nofollow">Hex package</a></li>
<li><a href="https://hexdocs.pm/locus/1.11.0/" rel="noopener nofollow ugc">Documentation</a></li>
<li><a href="https://github.com/g-andrade/locus/tree/1.11.0" rel="noopener nofollow ugc">Source code (GitHub)</a></li>
<li><a href="https://github.com/g-andrade/locus/tree/1.11.0" rel="noopener nofollow ugc">Source code (GitLab)</a></li>
</ul> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="174927" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/locus-geolocation-and-asn-lookup-of-ip-addresses/11215/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-174927" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="174927"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #11"></div>
  </section>
</div>
    <div class="postbit" id="176270" data-post-id="176270">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="g-andrade" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/g-andrade/120/24455_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  g-andrade
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><a href="https://github.com/g-andrade/locus/" rel="noopener nofollow ugc">Locus 1.12.0</a> was released today!</p>
<h3><a name="p-176270-added-1" class="anchor" href="#p-176270-added-1" aria-label="Heading link" rel="nofollow"></a>Added</h3>
<ul>
<li>support for Erlang/OTP 23</li>
</ul>
<h3><a name="p-176270-changed-2" class="anchor" href="#p-176270-changed-2" aria-label="Heading link" rel="nofollow"></a>Changed</h3>
<ul>
<li>checksum verification algorithm of MaxMind downloads from MD5 to SHA-256</li>
</ul>
<p>Links:</p>
<ul>
<li><a href="https://hex.pm/packages/locus/1.12.0" rel="nofollow">Hex package </a></li>
<li><a href="https://hexdocs.pm/locus/1.12.0/" rel="noopener nofollow ugc">Documentation </a></li>
<li><a href="https://github.com/g-andrade/locus/tree/1.12.0" rel="noopener nofollow ugc">Source code (GitHub) </a></li>
<li><a href="https://github.com/g-andrade/locus/tree/1.12.0" rel="noopener nofollow ugc">Source code (GitLab) </a></li>
</ul> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="176270" data-batch-url="/posts/batch_likers">
                        4
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/locus-geolocation-and-asn-lookup-of-ip-addresses/11215/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-176270" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="176270"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #12"></div>
  </section>
</div>
    <div class="postbit" id="224309" data-post-id="224309">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="g-andrade" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/g-andrade/120/24455_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  g-andrade
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hi forum,</p>
<p>Locus 2.0.0, a MaxMind DB reader, was released tonight.</p>
<p>It’s the first breaking release and I used this opportunity to drop most deprecated code as well as polish the existing API.</p>
<h3><a name="p-224309-added-1" class="anchor" href="#p-224309-added-1" aria-label="Heading link" rel="nofollow"></a>Added</h3>
<ul>
<li>support for retrieving databases using consumer-defined <code>locus_custom_fetcher</code>s</li>
<li>support for decoding IEEE-754 infinities in MMDB data</li>
<li><code>locus:check/1</code> to API (which replaces <code>locus:analyze/1</code> and can be up to <em>3200% faster</em> <img src="https://forum.elixirforum.com/images/emoji/apple/racing_car.png?v=15" title=":racing_car:" class="emoji" alt=":racing_car:" loading="lazy" width="20" height="20">)</li>
<li>details to MMDB unpacking errors</li>
<li>linting checks with <code>rebar3_lint</code></li>
<li>dead code checks with <code>rebar3_hank</code></li>
</ul>
<h3><a name="p-224309-changed-2" class="anchor" href="#p-224309-changed-2" aria-label="Heading link" rel="nofollow"></a>Changed</h3>
<ul>
<li><img src="https://forum.elixirforum.com/images/emoji/apple/warning.png?v=15" title=":warning:" class="emoji" alt=":warning:" loading="lazy" width="20" height="20"> <strong>return type of <code>locus:lookup/2</code></strong> (see MIGRATION.md)</li>
<li>database loader to use <code>persistent_term</code> instead of ETS</li>
<li>MMDB decoder to perform stricter metadata validations</li>
<li>MMDB decoder to not crash upon maps containing duplicate keys</li>
<li>databases downloaded through HTTP(S) without a <code>last-modified</code> response header to no longer be cached</li>
<li>imported version of <code>tls_certificate_check</code> to ‘~&gt; 1.7’</li>
<li>single CT suite covering both filesystem and HTTP sources into one for each</li>
<li>test coverage for the better</li>
</ul>
<h3><a name="p-224309-removed-3" class="anchor" href="#p-224309-removed-3" aria-label="Heading link" rel="nofollow"></a>Removed</h3>
<ul>
<li><img src="https://forum.elixirforum.com/images/emoji/apple/warning.png?v=15" title=":warning:" class="emoji" alt=":warning:" loading="lazy" width="20" height="20"> <strong><code>locus:wait_for_loader/1</code> from API</strong> (deprecated in 1.10.0 - see <a href="https://github.com/g-andrade/locus/blob/2.0.0/MIGRATION.md" rel="noopener nofollow ugc">MIGRATION.md</a>)</li>
<li><img src="https://forum.elixirforum.com/images/emoji/apple/warning.png?v=15" title=":warning:" class="emoji" alt=":warning:" loading="lazy" width="20" height="20"> <strong><code>locus:wait_for_loader/2</code> from API</strong> (deprecated in 1.10.0 - see …)</li>
<li><img src="https://forum.elixirforum.com/images/emoji/apple/warning.png?v=15" title=":warning:" class="emoji" alt=":warning:" loading="lazy" width="20" height="20"> <strong><code>locus:wait_for_loaders/2</code> from API</strong> (deprecated in 1.10.0 - see …)</li>
<li><img src="https://forum.elixirforum.com/images/emoji/apple/warning.png?v=15" title=":warning:" class="emoji" alt=":warning:" loading="lazy" width="20" height="20"> <strong><code>locus:get_version/1</code> from API</strong> (deprecated in 1.4.0 - see …)</li>
<li><img src="https://forum.elixirforum.com/images/emoji/apple/warning.png?v=15" title=":warning:" class="emoji" alt=":warning:" loading="lazy" width="20" height="20"> <strong><code>locus:analyze/1</code> from API</strong> (<code>locus:check/1</code> now fullfils this role - see …)</li>
<li><strong>deprecated loader options</strong> <code>pre_readiness_update_period</code> and <code>post_readiness_update_period</code> (see …)</li>
<li>warnings on the use of discontinued GeoLite2 HTTP URLs</li>
</ul>
<h4><a name="p-224309-links-4" class="anchor" href="#p-224309-links-4" aria-label="Heading link" rel="nofollow"></a>Links:</h4>
<ul>
<li><a href="https://github.com/g-andrade/locus/blob/2.0.0/MIGRATION.md" rel="noopener nofollow ugc">Migration guide</a></li>
<li><a href="https://hex.pm/packages/locus/2.0.0" rel="nofollow">Hex package</a></li>
<li><a href="https://hexdocs.pm/locus/2.0.0/" rel="noopener nofollow ugc">Documentation</a></li>
<li><a href="https://github.com/g-andrade/locus/tree/2.0.0" rel="noopener nofollow ugc">Source code (GitHub)</a></li>
<li><a href="https://gitlab.com/g-andrade/locus/tree/2.0.0" rel="noopener nofollow ugc">Source code (GitLab)</a></li>
</ul> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="224309" data-batch-url="/posts/batch_likers">
                        8
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/locus-geolocation-and-asn-lookup-of-ip-addresses/11215/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-224309" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="224309"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #13"></div>
  </section>
</div>
    <div class="postbit" id="224411" data-post-id="224411">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="g-andrade" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/g-andrade/120/24455_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  g-andrade
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Locus 2.1.0 is out! (<em>that didn’t take long</em>)</p>
<h3><a name="p-224411-added-1" class="anchor" href="#p-224411-added-1" aria-label="Heading link" rel="nofollow"></a>Added</h3>
<ul>
<li><code>locus_mmdb:unpack_tree_data_and_data_section/2</code> to the API</li>
<li><code>locus_mmdb_data_codec:parse_on_index/3</code> to the API</li>
<li>CI on Windows</li>
</ul>
<h3><a name="p-224411-removed-2" class="anchor" href="#p-224411-removed-2" aria-label="Heading link" rel="nofollow"></a>Removed</h3>
<ul>
<li>no longer warranted run time dependency (<code>public_key</code>)</li>
</ul>
<h3><a name="p-224411-fixed-3" class="anchor" href="#p-224411-fixed-3" aria-label="Heading link" rel="nofollow"></a>Fixed</h3>
<ul>
<li><strong>wrong return of errors during <code>:check/1</code></strong> for maps containing maps or arrays which had been checked previously</li>
<li><strong>wrong paths in <code>:check/1</code> errors or warnings</strong> concerning maps</li>
<li>no longer warranted type definition</li>
</ul>
<p>(Hopefully stable now!)</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="224411" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/locus-geolocation-and-asn-lookup-of-ip-addresses/11215/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-224411" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="224411"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #14"></div>
  </section>
</div>
    <div class="postbit" id="224417" data-post-id="224417">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="dimitarvp" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dimitarvp/120/38664_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  dimitarvp
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Is there any way to use this library without a license from the upstream data provider?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="224417" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/locus-geolocation-and-asn-lookup-of-ip-addresses/11215/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-224417" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="224417"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #15"></div>
  </section>
</div>
    <div class="postbit" id="224431" data-post-id="224431">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="g-andrade" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/g-andrade/120/24455_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  g-andrade
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Sure! As long as it’s in <a href="https://maxmind.github.io/MaxMind-DB/" rel="noopener nofollow ugc">MMDB format</a>, <code>locus</code> will know how to parse it[*].</p>
<p>I know of one alternative provider, and it doesn’t require license or registration for downloading their lite MMDB databases (although some restrictions apply):</p>
<ul>
<li>DB-IP: <a href="https://db-ip.com/db/" class="inline-onebox" rel="noopener nofollow ugc">Comprehensive IP Geolocation Database Download | DB-IP</a></li>
</ul>
<p>And you can also build your own databases with arbitrary data (using tools other than <code>locus</code>, although it wouldn’t be too difficult to give it encoding capabilities.)</p>
<hr>
<p>[*]: With the exception of <a href="https://maxmind.github.io/MaxMind-DB/#data-cache-container---12" rel="noopener nofollow ugc">a single data type</a> which I’ve never seen so far</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="224431" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/locus-geolocation-and-asn-lookup-of-ip-addresses/11215/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-224431" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="224431"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #16"></div>
  </section>
</div>
    <div class="postbit" id="327139" data-post-id="327139">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="g-andrade" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/g-andrade/120/24455_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  g-andrade
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Long time no see!</p>
<p>After many a boring release, <code>locus</code> 2.3.8 fixes a <a href="https://github.com/g-andrade/locus/issues/44" rel="noopener nofollow ugc"><strong>6 years old bug</strong></a> which prevented it from looking up IPv4 addresses in some databases, <strong>for ex those of IPinfo</strong>.</p>
<p>Links:</p>
<ul>
<li><a href="https://hexdocs.pm/locus/readme.html" rel="noopener nofollow ugc">Documentation</a></li>
<li><a href="https://hex.pm/packages/locus" rel="nofollow">Hex package</a></li>
<li><a href="https://github.com/g-andrade/locus" rel="noopener nofollow ugc">Source code</a></li>
</ul> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="327139" data-batch-url="/posts/batch_likers">
                        4
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/locus-geolocation-and-asn-lookup-of-ip-addresses/11215/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-327139" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="327139"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-last-post cat-last-post" title="Last post!"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <span class="all-loaded">— All posts loaded —</span>
</div></template></turbo-stream>