
Security News
AGENTS.md Gains Traction as an Open Format for AI Coding Agents
AGENTS.md is a fast-growing open format giving AI coding agents a shared, predictable way to understand project setup, style, and workflows.
@alvarcarto/tilewarm
Advanced tools
A command-line tool to warm up your tile server cache. Give it a URL template, coordinates, and list of zoom levels and it will systematically request all tile images in the given area.
npm install -g @alvarcarto/tilewarm
Docker example:
docker build -t tilewarm .
docker run tilewarm http://yourtileserver.com/{z}/{x}/{y}.png --input geojson/world.geojson --zoom 1-5
1-5 levels, 20km radius from the center of Barcelona
tilewarm http://yourtileserver.com/{z}/{x}/{y}.png --point 41.38,2.16 --buffer 20km --zoom 1-5
1-5 levels of the world (~1.3k requests)
tilewarm http://yourtileserver.com/{z}/{x}/{y}.png --input geojson/world.geojson --zoom 1-5
1,3,5 levels of the world (~1k requests)
tilewarm http://yourtileserver.com/{z}/{x}/{y}.png --input geojson/world.geojson --zoom 1,3,5
6-8 levels for all cities in the world (~4k requests)
tilewarm http://yourtileserver.com/{z}/{x}/{y}.png --input geojson/all-cities.geojson --zoom 6-8
6-14 levels for all cities in the world (~1.2M requests)
tilewarm http://yourtileserver.com/{z}/{x}/{y}.png --input geojson/all-cities.geojson --zoom 6-14
15 level for all cities in the world (~3M requests)
tilewarm http://yourtileserver.com/{z}/{x}/{y}.png --input geojson/all-cities.geojson --zoom 15
Usage: tilewarm <url> [options]
<url> Tile URL template
Options:
--verbose Increase logging [boolean] [default: false]
--max-retries How many times to retry the tile request. The first
request is not counted as a retry. [default: 5]
--retry-base-timeout Base timeout defines how many ms to wait before retrying
a request. The final wait time is calculated with
retryIndex * retryBaseTimeout. [default: 5000]
-h, --help Show help [boolean]
-p, --point Center of region (use with -b) [string]
-b, --buffer Buffer point/geometry by an amount. Affix units at end:
mi,km [string] [default: "0km"]
-z, --zoom Zoom levels (comma separated or range)
[string] [default: "3-9"]
-l, --list Don't perform any requests, just list all tile URLs
[boolean] [default: false]
-i, --input GeoJSON input file [string] [default: null]
-c, --concurrency How many concurrent requests to execute [default: 5]
-m, --method Which HTTP method to use in requests
[string] [default: "GET"]
-v, --version Show version number [boolean]
Examples:
tilewarm http://tileserver.com/{z}/{x}/{y}.png --point 62.31,23.12 --buffer
10km
Not enough non-option arguments: got 0, need at least 1
Form a geojson for all cities in the world.
node tools/cities-to-geojson.js tools/cities.csv > cities.geojson
# Put geojson to clipboard, works on Mac
cat cities.geojson | pbcopy
You can debug the geojson by pasting it into http://geojson.io/. The file can be compressed even more with https://www.npmjs.com/package/geojson-precision.
Then run:
tilewarm http://yourtileserver.com/{z}/{x}/{y}.png --input cities.geojson
Each zoom level 3-19.
Commit all changes.
Use np to automate the release:
np
Edit GitHub release notes.
This tool is almost a rewrite of tilemantle, which hadn't been updated for a while and had a crash bug for our use case.
MIT
FAQs
A command-line tool to warm up your tile server cache
We found that @alvarcarto/tilewarm demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
AGENTS.md is a fast-growing open format giving AI coding agents a shared, predictable way to understand project setup, style, and workflows.
Security News
/Research
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.