1 unstable release
0.0.1 | Oct 10, 2024 |
---|
#3 in #seo
278 downloads per month
Used in 2 crates
(via staticdatagen)
72KB
1K
SLoC
Sitemap Gen (sitemap-gen)
A fast and efficient Rust library for generating and validating XML sitemaps.
• Website • Documentation • Report Bug • Request Feature • Contributing Guidelines
Overview
The sitemap-gen
library provides a powerful solution for generating and optimizing XML sitemaps, essential for enhancing SEO and improving website visibility. It supports the creation of sitemaps for websites of any scale, with built-in validation and performance optimizations to ensure that your sitemaps comply with web standards.
Features
- XML Sitemap Generation: Efficiently generate well-structured XML sitemaps for websites.
- URL Management: Add, validate, and normalize URLs easily within the sitemap.
- Change Frequency Support: Specify how often pages are likely to change (daily, weekly, etc.).
- Last Modified Dates: Include accurate timestamps for when pages were last modified.
- Validation: Ensure that your sitemap adheres to size and URL limits as per SEO guidelines.
- Performance Optimizations: Pre-allocate buffers and optimize memory usage for generating large sitemaps.
- Asynchronous Processing: Leverage async functionality to generate sitemaps efficiently for larger sites.
Installation
Add this to your Cargo.toml
to start using sitemap-gen
:
[dependencies]
sitemap-gen = "0.0.1"
Usage
Here’s an example of how to generate a sitemap:
use sitemap_gen::{Sitemap, ChangeFreq, SiteMapData};
use url::Url;
fn main() -> Result<(), Box<dyn std::error::Error>> {
// Create a new sitemap
let mut sitemap = Sitemap::new();
// Add entries
let entry = SiteMapData {
loc: Url::parse("https://example.com/")?,
lastmod: "2023-10-01".to_string(),
changefreq: ChangeFreq::Weekly,
};
sitemap.add_entry(entry)?;
// Generate the XML
let xml = sitemap.to_xml()?;
println!("{}", xml);
Ok(())
}
Documentation
Full API documentation is available at docs.rs/sitemap-gen.
Examples
To explore more examples, clone the repository and run the following command:
cargo run --example example_name
Contributing
We welcome contributions from the community! Please check our contributing guidelines and feel free to submit issues or pull requests.
License
This project is licensed under either of the following licenses:
You can choose which one you prefer.
Acknowledgements
Special thanks to all contributors who have helped build and improve the sitemap-gen
library.
Dependencies
~32–46MB
~726K SLoC