High-performance, memory-efficient XML to Dict, Dict to XML for Python, written in Rust.
Project description
Obj2XML-rs
High-performance, memory-efficient XML serializer and parser for Python, written in Rust.
A fast, deterministic, streaming-capable JSON↔XML tool with Python ergonomics. obj2xml-rs is a drop-in replacement for
libraries like xmltodict but designed for speed, scalability, and correctness.
It leverages Rust's zero-copy optimizations and streaming capabilities to handle massive datasets without exhausting system memory.
Features
- Blazing Fast: Built on
quick-xmlwith Zero-Copy (Cow<str>) optimizations. 5-15x faster than pure Python. - True Streaming: Supports Python Generators and Iterators. Writes huge XML files item-by-item directly to disk.
- Robust Error Context: Exceptions include the full XML path (e.g.,
Error at root/users/[3]/@id). - Safe: Includes cycle detection to prevent infinite recursion crashes.
- Professional Spec: Supports Namespaces, CDATA, Comments, Processing Instructions, and deterministic attribute sorting.
- Pythonic: Supports
defaulthandlers for custom types (likedatetime), similar tojson.dump.
Installation
pip install obj2xml-rs
Quick Start
1. Unparse (Dict → XML)
import obj2xml_rs
data = {
"root": {
"@id": "123",
"name": "Rust",
"features": ["Fast", "Safe"]
}
}
print(obj2xml_rs.unparse(data, pretty=True))
Output:
<?xml version="1.0" encoding="utf-8"?>
<root id="123">
<name>Rust</name>
<features>Fast</features>
<features>Safe</features>
</root>
2. Parse (XML → Dict)
xml = '<root id="1"><item>A</item><item>B</item></root>'
data = obj2xml_rs.parse(xml)
print(data)
# {'root': {'@id': '1', 'item': ['A', 'B']}}
3. Streaming (Low Memory Write)
Generate XML from a generator. Writes to file incrementally.
def huge_data():
for i in range(1_000_000):
yield {"row": {"id": i, "val": f"data_{i}"}}
obj2xml_rs.unparse(
huge_data(),
output="large.xml",
streaming=True,
item_name="row"
)
Specification & Behavior
This section defines how Python structures map to XML.
1. Reserved Keys
The following keys have special meaning in a dictionary:
| Key | Description | Example |
|---|---|---|
| @key | XML Attribute (prefix configurable) | {"@id": 1} → |
| #text | Element text content | {"tag": {"#text": "Hello"}} → Hello |
| #comment | XML Comment | {"#comment": "Note"} → |
| ?key | Processing Instruction | {"?xml-stylesheet": "href..."} → |
| #tail | Text content appearing immediately after the element's closing tag. | {"b": {"#text": "Bold", "#tail": " text"}} → < b>Bold</ b> text |
| cdata | CDATA Wrapper | {"#text": {"cdata": "x<y"}} → |
2. Element Mapping & Lists
- Dict Keys: Map directly to XML Element names.
- Lists: Keys containing a list generate repeated elements with the same name.
{"items": {"item": [1, 2]}} # <items><item>1</item><item>2</item></items>
- Root Primitives: If the input is a list of primitives, they are wrapped in
item_name.unparse([1, 2], item_name="n", full_document=False) # <n>1</n><n>2</n>
3. Attributes & Sorting
- Keys starting with
attr_prefix(default"@") become attributes. - Values: Any serializable value is accepted. Dicts/Lists in attributes are stringified.
- Sorting: Attributes follow Python insertion order by default. Use
sort_attributes=Truefor deterministic output (attributes sorted lexicographically).
4. Namespaces
Namespaces can be declared in three ways:
- Static (Root Scope): Best practice for clean XML.
unparse(data, namespaces={"soap": "http://example.com/soap"}) # <root xmlns:soap="http://example.com/soap"> ...
- Inline Declarations:
{"root": {"@xmlns:x": "urn:x", "x:child": 1}}
- Dynamic Assignment:
{"tag": {"@ns": "urn:auto"}} # Automatically generates prefixes (ns0, ns1...)
5. Advanced Nodes
- CDATA: Use the
__cdata__key inside a text node. - Comments: Use
#comment. - Processing Instructions: Keys starting with
?.{"root": {"?xml-stylesheet": 'type="text/xsl" href="style.xsl"'}}
6. Constraints & Validation policies
- XML Names: No validation of XML name syntax is performed. If you pass
{"<invalid>": 1}, invalid XML will be generated. - Mixed Content: Mixed
#textand child elements are allowed.{"p": {"#text": "Hello", "b": "World"}} # Valid: <p>Hello<b>World</b></p>
- Root Rules:
full_document=True(default): Requires exactly one root element.full_document=False: Allows multiple roots (XML Fragment).
Error Handling
Errors are actionable and include the full path to the problematic node.
def fail_serializer(obj):
raise ValueError("Bad data")
data = {"users": [{"name": "Alice", "meta": {"@date": object()}}]}
try:
unparse(data, default=fail_serializer)
except ValueError as e:
print(e)
Output:
Custom serialization failed: Bad data (at users/[0]/meta/@date)
- Circular References: A
RecursionErroris raised if an object references itself.
API Reference
Unparse (Write)
def unparse(
input: Union[Dict, Iterable, Any],
*,
output: Optional[Union[str, IO]] = None,
encoding: str = "utf-8",
full_document: bool = True,
attr_prefix: str = "@",
cdata_key: str = "#text",
pretty: bool = False,
indent: str = " ",
compat: str = "native",
streaming: bool = False,
default: Optional[Callable[[Any], str]] = None,
item_name: str = "item",
sort_attributes: bool = False,
namespaces: Optional[Dict[str, str]] = None
) -> str:
Parse (Read)
def parse(
xml_input: Union[str, bytes, IO],
*,
encoding: Optional[str] = None,
attr_prefix: str = "@",
cdata_key: str = "#text",
force_cdata: bool = False,
process_namespaces: bool = False,
namespace_separator: str = ":",
strip_whitespace: bool = True,
force_list: Optional[Iterable[str]] = None,
process_comments: bool = False
) -> Dict[str, Any]:
CLI Usage
JSON to XML (Unparse)
# Basic
python -m obj2xml_rs unparse input.json -o output.xml --pretty
# Streaming from Pipe
cat huge.json | python -m obj2xml_rs unparse --stream --item-name "record" > out.xml
XML to JSON (Parse)
# Convert XML file to JSON
python -m obj2xml_rs parse data.xml -o data.json --pretty
# Force specific tags to be lists
python -m obj2xml_rs parse data.xml --force-list item user
Python XML Library Comparison Matrix
| Feature | obj2xml-rs | xmltodict | xmltodict-rs | dicttoxml | quick-xmltodict |
|---|---|---|---|---|---|
| Language | Rust (PyO3) | Python | Rust (PyO3) | Python | Rust (PyO3) |
| Capabilities | Read & Write | Read & Write | Read & Write | Write Only | Read Only |
| Write Speed | High | Low | High | Low | N/A |
| Write Memory Model | Streaming / Zero-Copy | In-Memory Object Graph | In-Memory String | In-Memory String | N/A |
| Stream Writing | Yes (Generators) | No | No | No | N/A |
| Async Support | Yes (asyncio) | No | No | No | N/A |
| Cycle Detection | Yes, detects cycles early and raises path-aware Python exceptions |
No — fails with RecursionError | No — causes interpreter crash (SIGSEGV) on cyclic input | No — fails with RecursionError | N/A |
| Error Context | Path-Aware | Generic | Generic | Generic | N/A |
| Attributes | Deterministicc | Insertion Order | Insertion Order | Non-deterministic unless pre-sorted | N/A |
| Namespaces | Yes | Yes | Yes | Limited | N/A |
📄 License
This project is licensed under the Apache License 2.0.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file obj2xml_rs-0.2.0.tar.gz.
File metadata
- Download URL: obj2xml_rs-0.2.0.tar.gz
- Upload date:
- Size: 29.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9367ef30ef48bd9b76dcb6be9fa9ed4fb2c183c518e121b49e96ee8ed605321b
|
|
| MD5 |
f72048f964afacf09bbdacd1c6a5c573
|
|
| BLAKE2b-256 |
b23f847fbee1b0cd87e951524de0d94fa4a79069cd465ad0957280d7cfdbfe41
|
File details
Details for the file obj2xml_rs-0.2.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 277.4 kB
- Tags: PyPy, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
773f00f8842acf40332559b6d6782ac7e9094b1bb561799193854932d91020bc
|
|
| MD5 |
691111998f87cf0afef183eefd71d79b
|
|
| BLAKE2b-256 |
7f08a758ba939326146b1ad0dd7992abb3f0d39c5729443eb9206c2e84434307
|
File details
Details for the file obj2xml_rs-0.2.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 265.8 kB
- Tags: PyPy, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d3fe8fa8e984528b592d452182716b909c36275bccba936984a64ced3f3a64a
|
|
| MD5 |
0f3fd4c6ec91deb0d894963c6c296f18
|
|
| BLAKE2b-256 |
0ff315f4857458a37218f1fc860b4cd89e12af590b9a3725a11502cef8ac2a2f
|
File details
Details for the file obj2xml_rs-0.2.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl
- Upload date:
- Size: 296.8 kB
- Tags: PyPy, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
178f81455237bc5e1881b4c833261f2683442a605a0c28b3e463fa2ed5d1a9f0
|
|
| MD5 |
24e4b1df86e9411730f70116ba3e7e0e
|
|
| BLAKE2b-256 |
2b9a5e1c27beafe73b077af8bb4b5d6fa0e99752c9d743cab42af7355dcff12c
|
File details
Details for the file obj2xml_rs-0.2.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 260.1 kB
- Tags: CPython 3.14t, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
51846e6093431ab9227d80aa55ae3c6c9f6538112b225906ef2ac23aca3d9332
|
|
| MD5 |
05358c4ecdc24a4de4bce564ac62ab45
|
|
| BLAKE2b-256 |
6f4a4d893cd02de1a7859301bdb3618c25ea3d78671bf4e4583931b001fd9381
|
File details
Details for the file obj2xml_rs-0.2.0-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 182.2 kB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c4b0e2d54eea513579ce02273bc7c999acb49a634b39d1d1ee2b4137ba451dc
|
|
| MD5 |
be532a8d93d4221e6405981ee2f010e9
|
|
| BLAKE2b-256 |
1efad55366932cd06c40a264ecd5ef00c2a982b60d3f6577f83122fbfa6f7d39
|
File details
Details for the file obj2xml_rs-0.2.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 275.6 kB
- Tags: CPython 3.14, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a446eabecaffffb89935f44a844bb473f77c2b04e0fb168796cd1e9daf2f0701
|
|
| MD5 |
a3b4e78213c21d1544befeb9a0f5caad
|
|
| BLAKE2b-256 |
d822caebdf0368a100059c175f6b51ea3127fd82f09102dafe6f41deee3d1550
|
File details
Details for the file obj2xml_rs-0.2.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 264.2 kB
- Tags: CPython 3.14, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a25a0796aff33de8f4478d46d05ebb5d0d2a80ee4d9520c2c9ec065c98a5d8f2
|
|
| MD5 |
8d52e4a4bf6052ab9027d196837dcc45
|
|
| BLAKE2b-256 |
5d0be9fe5b64e239b1612c0d0cab0de28df40a0d81021a8f2c3e56fb2ede0f1e
|
File details
Details for the file obj2xml_rs-0.2.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl
- Upload date:
- Size: 296.4 kB
- Tags: CPython 3.14, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
303e0a5d79c4dd64e3a56da556fc5cec7905af2b50661a61245ea9af8233cf51
|
|
| MD5 |
1a6ff04ec596fb76a461a3251f006e73
|
|
| BLAKE2b-256 |
8a9474368d4e2de75a829e97432a45cd04254d3cb601544317e455f66c214953
|
File details
Details for the file obj2xml_rs-0.2.0-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 250.2 kB
- Tags: CPython 3.14, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff5c4c31457ddecda89e67cec425049f041c9ecc87aa37899cd324b4095777a8
|
|
| MD5 |
6c8336d94b70fd95123cd1ce30f76155
|
|
| BLAKE2b-256 |
50d3ab3b18653194c5d6add03902c76712a5c30a75ac8f4d7f7596f7b95d8888
|
File details
Details for the file obj2xml_rs-0.2.0-cp314-cp314-macosx_10_12_x86_64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp314-cp314-macosx_10_12_x86_64.whl
- Upload date:
- Size: 268.9 kB
- Tags: CPython 3.14, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7fe037ccff6ea98e85ba0f55bd97de596e7be690c10bacf5f560b681cbff6a08
|
|
| MD5 |
15cc5055d5c99ccce77fc0b804b37dd4
|
|
| BLAKE2b-256 |
f045ee8558ac982eae9a4a153e432876a2f99edaf6a758b8efc1f6ee921c1b9d
|
File details
Details for the file obj2xml_rs-0.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 261.7 kB
- Tags: CPython 3.13t, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d1b801e7dd417546c8a57c25b3b37c9bd2cf533a97da166ebe5d3d3f6f5780c1
|
|
| MD5 |
a7cf43fa8ea20193d443c7d0a3d06ca1
|
|
| BLAKE2b-256 |
68aea8de2d3205616e99bd389b7d15d1f0851955838c459d6e5c17d8c1696d1f
|
File details
Details for the file obj2xml_rs-0.2.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 183.7 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f3790079f77bb7321e349c88ed2eb66cb0a884423487c1105d77426cfd7c6da3
|
|
| MD5 |
7decdd7ce484b0c96380c846929219ed
|
|
| BLAKE2b-256 |
c764efe9ca633a9afd4e5a28fddbd31650be349802eacfabacb8ba970525dc09
|
File details
Details for the file obj2xml_rs-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 278.1 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c1c0f036e26f13aa1a5d4c6d090200ab1857316b68e378b505aef9b4db1ae3fb
|
|
| MD5 |
3e5d6ef83950c6b9694c03e1a24159fb
|
|
| BLAKE2b-256 |
21054721ec263d37c24cf661f21a480311aba5ed86047cdd68ecea33668db8c6
|
File details
Details for the file obj2xml_rs-0.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 265.0 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7107dde79f25d58148d34dc7530f8ab8b87fb288cd969e999b0352ce33f36dfa
|
|
| MD5 |
31b88099a752ca90141e9265fdbf2bb9
|
|
| BLAKE2b-256 |
c69c14b6e206e7d71bd40d754da06c64a452c1a62fe61a9cdb121679baaddce6
|
File details
Details for the file obj2xml_rs-0.2.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl
- Upload date:
- Size: 297.2 kB
- Tags: CPython 3.13, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
90a88241e4ce9b861075fde4f3e39f7d8273a6a15f2b13e9ddcf211beb75d5bc
|
|
| MD5 |
0a8deb3f64e91343f2b67d8aa813ff58
|
|
| BLAKE2b-256 |
6ba7f2901c6331f9ad39e4583745d7847e737c21cd0c04ee88bb824335ea4d2f
|
File details
Details for the file obj2xml_rs-0.2.0-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 252.4 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9caae22916ef0380f347f1194b06e901bacb460c6b18ecb114d89dbc7d7fc213
|
|
| MD5 |
1d8f1f345b0556174830ce7237d52421
|
|
| BLAKE2b-256 |
75846beeb669e5eeee474b0795438d97b331231950b73869114a93ff868a3f4b
|
File details
Details for the file obj2xml_rs-0.2.0-cp313-cp313-macosx_10_12_x86_64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp313-cp313-macosx_10_12_x86_64.whl
- Upload date:
- Size: 271.4 kB
- Tags: CPython 3.13, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9fa726cb797586e065f9f64b266178b2e21688dfe538ef892619d6046606fa6c
|
|
| MD5 |
a198d3d0e4e17cd2664536ea2975590a
|
|
| BLAKE2b-256 |
b586083165c9613bfcb184fc479710c988e92360212151577e0bf8f7936ba25b
|
File details
Details for the file obj2xml_rs-0.2.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 184.1 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0833e3ca41e9aa5ab3a9237719791b13ca056a240e80082b3b493fad6617029d
|
|
| MD5 |
8a11dc98fceffa47b2db6aefed0d7896
|
|
| BLAKE2b-256 |
ce8c7250ee56bff4693149199384134feec52fae93c9c601a7caeb3130744029
|
File details
Details for the file obj2xml_rs-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 278.3 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5f84ca77d6a550bb84cf578e20307803ae9f7165e5e46ea41c367cda7b036c72
|
|
| MD5 |
7b88b8cf929885b489b49fc3715e4ddd
|
|
| BLAKE2b-256 |
34e655db787fcc31f0e3ea0db83ac24af50f3d48ffe286df80431b5d3e851fa1
|
File details
Details for the file obj2xml_rs-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 264.7 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0124ee5df026af3b52654739efa47f1b6679b4ac45542ddc69a333c254528598
|
|
| MD5 |
98d3c014ed63e7f2ea9c1d8ecc5f14da
|
|
| BLAKE2b-256 |
534ee9f523a18217be5c0daf1cec531ac599fb904f4a5dead97e8a15d05bd073
|
File details
Details for the file obj2xml_rs-0.2.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl
- Upload date:
- Size: 296.4 kB
- Tags: CPython 3.12, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f4c61633d69f2457446891c6842302ed8c67b066cd9966977c7c7bc4bd817e05
|
|
| MD5 |
083f180a1b1153dcd131c86e623b74ce
|
|
| BLAKE2b-256 |
925e9302f4e55f98acb3275b9ecd709e295c2904c688ae600e53f634708714fa
|
File details
Details for the file obj2xml_rs-0.2.0-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 251.0 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef5883d00153b2908c8796127a0f8bb13e32dd112069fe38446fc0c9a536b9cb
|
|
| MD5 |
3b60aadab0e24d2c521060e4c57c089d
|
|
| BLAKE2b-256 |
af62ea50b0e8a0e8c87b9912c91dc907325a40982477082d2a75ada55dffea40
|
File details
Details for the file obj2xml_rs-0.2.0-cp312-cp312-macosx_10_12_x86_64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp312-cp312-macosx_10_12_x86_64.whl
- Upload date:
- Size: 270.8 kB
- Tags: CPython 3.12, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5ab332cc8218e5e3de6ec452da070f280b6f90e9c25b2f593c046d24e3c3d640
|
|
| MD5 |
a874a258f2dae589f0d85f47d84dbf23
|
|
| BLAKE2b-256 |
37b69d4c71cbf3dfca2b9e9bf5662275b92a300a7c9fa020f0a92ad896117e85
|
File details
Details for the file obj2xml_rs-0.2.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 184.0 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
70dca09faf11ebfccb9bff9702359a8f0ef44f83467a1664c0181d807e7b3560
|
|
| MD5 |
438278c7b575d41953273719489e0a1d
|
|
| BLAKE2b-256 |
9de22d97c68bd752823c69973db8b356e0797c74e5636aa253f59b4bb107cf38
|
File details
Details for the file obj2xml_rs-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 278.2 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd6a1662233772d24c4907767325b62244599fbf92f151df0f0e83dd841d5f9d
|
|
| MD5 |
b1a4d8e4045a5a95ba6e76d6d34d0811
|
|
| BLAKE2b-256 |
37b22551ec155ebcc27990f0d49c6027f63a0de14c1ec9e226ee36f47356eefc
|
File details
Details for the file obj2xml_rs-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 265.0 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb929b5fe742abf385e7ee1222c35fe387864fa174969814e44ac042e3d418b9
|
|
| MD5 |
dd293db28c7c4264538ab22d5ded7af1
|
|
| BLAKE2b-256 |
e61b6dfc06eef7090899b6af3ee8ec4774f6a75c6bdc0427db1e5be1665d7020
|
File details
Details for the file obj2xml_rs-0.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl
- Upload date:
- Size: 297.0 kB
- Tags: CPython 3.11, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33440e26624e00a88a41b45c6742110650cd9081fcf0834fe2bf89baf466ceb1
|
|
| MD5 |
2acd06263ed2d92e62899e3cb95753e2
|
|
| BLAKE2b-256 |
70632bd79adddc60200bc36d988b5f13a66d308b2257794829c39975fcbdecfe
|
File details
Details for the file obj2xml_rs-0.2.0-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 253.8 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ac55b216dd5c930aeaac6b9ccb8190e83f0519686c8881cf2bee151708dd248
|
|
| MD5 |
04142cea44d5f96a29ce1a508d6cf1ee
|
|
| BLAKE2b-256 |
2e05be97210ba753e762a4c0927895741592e3d3c357c636ab37a581a0e8450d
|
File details
Details for the file obj2xml_rs-0.2.0-cp311-cp311-macosx_10_12_x86_64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp311-cp311-macosx_10_12_x86_64.whl
- Upload date:
- Size: 271.7 kB
- Tags: CPython 3.11, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
774828c2f04755b25a7b96120fbbd62d57f65259f24aa650dd20a2c372e6ab0c
|
|
| MD5 |
6bb4bf0fd2421eafeda02e751b31c755
|
|
| BLAKE2b-256 |
b73c1fa5aeeb41950df93b4d6d20fdf3da73fde7e2f5dc28aef04e4f1cd5bc28
|
File details
Details for the file obj2xml_rs-0.2.0-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 184.0 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de343973396ac044cb1b7a1d2d049414680aa37645d90e54f59fa9397c9499e9
|
|
| MD5 |
d32958e3d12bc78d293ca2a712b2fe12
|
|
| BLAKE2b-256 |
392553fee3e8cf80754b99502844d12653258e7fca3cf3457a37b1281dd58bec
|
File details
Details for the file obj2xml_rs-0.2.0-cp310-cp310-win32.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp310-cp310-win32.whl
- Upload date:
- Size: 176.8 kB
- Tags: CPython 3.10, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
357fc4e3c4155414e712c43dffc7e69ba45c77f2651ab1f294bb5be379816092
|
|
| MD5 |
9350240d50229f605b5be28415ef1f50
|
|
| BLAKE2b-256 |
c222f0d7f589af301ceab7c316c06bcfa50cfbb6abd136ca2be1dbc988a9bb67
|
File details
Details for the file obj2xml_rs-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 278.2 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
778191e7e616085b718d8a42e390be7f803d83510da628cbdb0bd8bdbb454e5f
|
|
| MD5 |
ccc1c6fcf9d366033e3b83c2d9a28b3d
|
|
| BLAKE2b-256 |
0ba16ceb4cf15ca406596e9127378abe60d6d7bc39461b9e9c26ad790b953ff1
|
File details
Details for the file obj2xml_rs-0.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 265.2 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
82ef5d1df50ebfc1d4ddf25935dc1ef2ab9677c549a48e3c2f196640e0b68ddc
|
|
| MD5 |
affe094f6f8c9dbc054e8b335fd1cc31
|
|
| BLAKE2b-256 |
f1dcec2fc3eaa6087f1f465ce3a7f9fe0663878f6091347331347ae1463722ff
|
File details
Details for the file obj2xml_rs-0.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl
- Upload date:
- Size: 297.1 kB
- Tags: CPython 3.10, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
452092dadcf7d1ba7059cce0ff357056a5531be8f3e994e00f7b1c3caa928281
|
|
| MD5 |
9910cfbd965b3ce987d6eceffc745601
|
|
| BLAKE2b-256 |
5c1ccd30c98da8233ba21de5d0c2cd426372ff050b7e33812929218d01dd23be
|
File details
Details for the file obj2xml_rs-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 278.6 kB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7761c9398ecb5460aad5aec74bee6be702f20a57bf577297b299e0bd92a34dd5
|
|
| MD5 |
e14002c1ebee1b6f448abc9fe7a42b13
|
|
| BLAKE2b-256 |
3ac36ac99f75a11d43a45f1d6792049894b7e73c8157d9123cbcc8d15c8672e9
|
File details
Details for the file obj2xml_rs-0.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 265.5 kB
- Tags: CPython 3.9, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4a53e392e8926d4c7802973297aeaf2ab0f3834fc7e47deec9ff240d6ef14d48
|
|
| MD5 |
af1c5dd5bb93c7e92cc2cb2cbd2caab3
|
|
| BLAKE2b-256 |
1dd020e4af37f5816c7c3bd6bccfe7de893f4cb60370ba292fa9315044e787aa
|
File details
Details for the file obj2xml_rs-0.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl
- Upload date:
- Size: 297.5 kB
- Tags: CPython 3.9, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f281fb057750d3c40cecb97d6e049eccd9f3cb80dcd88ff2dc720c32ef6530ed
|
|
| MD5 |
5aebf5f5732456e0918cb2161503aecd
|
|
| BLAKE2b-256 |
88fd88219293027727b13c3076d9c96c17c90fa898bb45499d9e06fca5373ef5
|
File details
Details for the file obj2xml_rs-0.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 278.5 kB
- Tags: CPython 3.8, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b08caed6c2958954a25709608fa1e2c704e221b6b4a462254a10e1d335e5646
|
|
| MD5 |
d25a6648915c5bf24cfb8e59f2e4ff1b
|
|
| BLAKE2b-256 |
821ae672d468d57ba160cbf34219adda631df7867388a1212658fc2753778dc1
|
File details
Details for the file obj2xml_rs-0.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 265.2 kB
- Tags: CPython 3.8, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3bf521e52641a99ce2417288b8974cb8d4d2ddd804d56d3eb8b7cf657ee49ae0
|
|
| MD5 |
d3ca0f3021d8f2fef28699ddd5623e3e
|
|
| BLAKE2b-256 |
f66ed0969c57d475f0408cdeee90b95b3e7ea32383bc83cfd8113dac57cc8bff
|
File details
Details for the file obj2xml_rs-0.2.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl.
File metadata
- Download URL: obj2xml_rs-0.2.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl
- Upload date:
- Size: 297.1 kB
- Tags: CPython 3.8, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aed74051f775c8124a5e7e4b128ede8611b38f222b0cadd0513db9137215c759
|
|
| MD5 |
6d05309f85bc008be0856785fb75ece6
|
|
| BLAKE2b-256 |
11b2e06c3848853900cc71cfb564fe89037c8fad684d24db308113e8b3a23484
|