Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Rust
  3. sxd-xpath

sxd-xpath

Apache-2.0Rust

A Rust library implementing XPath 1.0 for XML document querying and manipulation.

GitHubGitHub
132 stars37 forks0 contributors

What is sxd-xpath?

SXD-XPath is a Rust library that implements the XPath 1.0 specification for querying and navigating XML documents. It provides a safe, native Rust alternative to C-based XML processing libraries, allowing developers to evaluate XPath expressions against XML data structures programmatically.

Target Audience

Rust developers working with XML data who need to perform complex queries, transformations, or data extraction using XPath expressions.

Value Proposition

It offers a pure Rust implementation that avoids external C dependencies, integrates seamlessly with Rust's safety guarantees, and aims to eventually support XSLT 1.0 as a comprehensive XML processing solution.

Overview

An XPath library in Rust

Use Cases

Best For

  • Querying XML documents in Rust applications
  • Building XML processing pipelines without C dependencies
  • Implementing XPath-based data extraction tools
  • Replacing libxml/libxslt in Rust projects
  • Educational projects learning XPath implementation
  • Command-line XML manipulation utilities

Not Ideal For

  • Projects requiring XPath 2.0 or 3.0 features for advanced XML queries
  • Applications needing immediate, production-ready XSLT 1.0 support
  • High-performance XML processing where mature C libraries like libxml offer better optimization
  • Teams reliant on extensive community resources and third-party integrations

Pros & Cons

Pros

Pure Rust Safety

Implements XPath in Rust to avoid external C dependencies, leveraging Rust's memory safety guarantees as stated in the philosophy of providing a safe alternative.

Full XPath 1.0 Support

Provides complete implementation of the XPath 1.0 specification for evaluating expressions against XML documents, ensuring standard-compliant querying.

Modular DOM Crate

Includes a separate `sxd-document` crate for DOM manipulation and XML reading/writing from strings, allowing flexible integration as mentioned in the overview.

Command-Line Experimentation

Offers scattered utilities for testing XPath expressions via command line, facilitating quick prototyping and learning without writing full Rust code.

Cons

Limited XPath Version

Only supports XPath 1.0, lacking newer features from XPath 2.0 or 3.0 such as richer data types and functions, which may restrict complex XML processing.

Immature XSLT Support

XSLT 1.0 support is a future plan and not yet implemented, making it unsuitable for projects requiring XML transformations with XSLT today.

Sparse Ecosystem

Compared to established libraries like libxml, it has a smaller community and fewer resources, which can hinder debugging, integration, and adoption in production.

Open Source Alternative To

sxd-xpath is an open-source alternative to the following products:

l
libxslt

libxslt is the XSLT C library developed for the GNOME project, used for transforming XML documents using XSLT stylesheets.

L
LibXML

LibXML is a C library for parsing XML documents, providing a standards-compliant toolkit for developing XML-based applications.

Frequently Asked Questions

Quick Stats

Stars132
Forks37
Contributors0
Open Issues30
Last commit1 year ago
CreatedSince 2014

Tags

#parsing#query-language#dom#xml#rust#no-std#xpath

Built With

R
Rust

Included in

Rust56.6k
Auto-fetched 18 hours ago

Related Projects

jsonjson

Strongly typed JSON library for Rust

Stars5,603
Forks654
Last commit4 days ago
prostprost

PROST! a Protocol Buffers implementation for the Rust Language

Stars4,729
Forks629
Last commit4 days ago
rkyvrkyv

Zero-copy deserialization framework for Rust

Stars4,299
Forks231
Last commit22 days ago
https://github.com/ron-rs/ronhttps://github.com/ron-rs/ron

Rusty Object Notation

Stars3,969
Forks150
Last commit5 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub