warmer

Crates.iowarmer
lib.rswarmer
version0.1.2
sourcesrc
created_at2023-09-04 10:26:58.82149
updated_at2023-09-08 21:08:12.068797
descriptionA lightweight CDN cache warmer. A sitemap.xml is required for this to work. See README on how to use.
homepage
repositoryhttps://github.com/codingsasi/warmer
max_upload_size
id962958
size89,741
Abhai Sasidharan (codingsasi)

documentation

README

warmer

A CDN cache warmer in rust for the sitemap.xml files that look like this:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/sitemap.xsl"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
    <loc>https://abh.ai/</loc>
    <lastmod>2022-06-25T20:46Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
</url>
<url>
    <loc>https://abh.ai/photos/nature</loc>
    <lastmod>2022-09-25T05:33Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
</url>
<url>
    <loc>https://abh.ai/portraits</loc>
    <lastmod>2022-09-24T18:42Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
</url>
</urlset>

Other examples of sitemaps that work

Usage

Download (from here) and run the executable binary on linux with the following command

warmer http(s)://someurl.com interl
 - ./warmer https://abh.ai 5
 - ./warmer https://abh.ai 1
  • The interval value should be specified in seconds, and it's how long the warmer waiting before loading the next URL in the sitemap.
  • The default interval is 5 seconds. No interval (0s) is allowed but use only if you want to DDOS your own site.
  • The complete url should be specified with scheme as well.

Build from source

  1. Clone the repo
  2. cd warmer
  3. Install cargo https://doc.rust-lang.org/cargo/getting-started/installation.html
  4. cargo build --release
  5. The binary will be in the target/release folder. It will also be named warmer
  6. You may need to install libudev-dev, libssl-dev, openssl, pkg-config, build-essential.

Running using docker

  1. docker pull abhaisasidharan/warmer
  2. docker run abhaisasidharan/warmer -it warmer https://abh.ai 5

Notes

Large sitemaps, that include other zipped or gzipped sitemaps are not supported yet. I'll release that as and when I get time. But for most sitemaps this should warm it just fine. Currently on supported on 64-bit linux OS.

Commit count: 22

cargo fmt