High-performance, memory-efficient XML generator from Dict for Python, written in Rust.
Project description
Obj2XML-rs
High-performance, memory-efficient XML generator for Python, written in Rust.
A fast, deterministic, streaming-capable JSON→XML DSL with Python ergonomics.
obj2xml-rs is a drop-in replacement for libraries like xmltodict.unparse 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-xml with 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 default handlers for custom types (like datetime), similar to json.dump.
📦 Installation
pip install obj2xml-rs
📖 Quick Start
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>
Streaming (Low Memory)
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=True for 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 {"": 1}, invalid XML will be generated.
Mixed Content: Mixed #text and 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 RecursionError is raised if an object references itself.
⚙️ API Reference
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:
| Argument | Description |
|---|---|
| compat | "native" (default, for None) or "dicttoxml" (legacy, ). |
| default | Callback to serialize unknown types. Errors propagate with path context. |
| streaming | If True, writes incrementally. output must be provided. |
| namespaces | Dict of {prefix: uri} declared at the root element. |
🖥️ CLI Usage
# Basic
python -m obj2xml_rs input.json -o output.xml --pretty
# Streaming from Pipe
cat huge.json | python -m obj2xml_rs --stream --item-name "record" > out.xml
📄 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.1.0.tar.gz.
File metadata
- Download URL: obj2xml_rs-0.1.0.tar.gz
- Upload date:
- Size: 23.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
541733a3073e3f3df14d856a420a7c6f944687f2e1b6b706295bcdf0000bdecd
|
|
| MD5 |
360c787ed17f848aec4f05e8377367ea
|
|
| BLAKE2b-256 |
e98cf6aa11d79df41ec8eb78bfc142e47deffad810b6c654976cac988e797b51
|
File details
Details for the file obj2xml_rs-0.1.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 238.8 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 |
617ad564b4d8af790936515c671c3e0c8e3b6b54440897ee68c5acf004c45fdb
|
|
| MD5 |
6e049ab5a878cfbd1e9dffbd9e27bcfb
|
|
| BLAKE2b-256 |
319539895bdd9d55cdbfbd5839df08f84ff977d73e5ad3606361aa15f7ea7978
|
File details
Details for the file obj2xml_rs-0.1.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 229.9 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 |
22fb7c3c18ee184a761c02f68dc365922dde9f9da9b8d8610d6cff1151fea17a
|
|
| MD5 |
1e5e63c1fa79a48fe8014cd47197563b
|
|
| BLAKE2b-256 |
0c37bb743c2170cae36270171095686a4572ede80c406613b64695053a8aaad3
|
File details
Details for the file obj2xml_rs-0.1.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl
- Upload date:
- Size: 256.7 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 |
8a65e8e556dd3a21867c0cad69876971509bba430bf6d13c89d51ffb16625ae3
|
|
| MD5 |
06f1445229b08338cfee3f3538db1c41
|
|
| BLAKE2b-256 |
6c7ebe979da828864b70bd26c09517a99c0aa032f68acc05e9bd5b354dd7c758
|
File details
Details for the file obj2xml_rs-0.1.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 226.5 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 |
2d546a1a0fc9e300ffec98d3c260f9b733944695fcf505bd2a23f3c43b72c35e
|
|
| MD5 |
c01b6e13d8530ec3976043ae4d9c8093
|
|
| BLAKE2b-256 |
0468f31666fc38bfb23c19ef143ca99172fcf4afa1d465bc1f1d70299942db78
|
File details
Details for the file obj2xml_rs-0.1.0-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 140.0 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 |
699c04d579743685e9feb7cdd9e6445ebef3da80e9159bc71b73a86a0b188622
|
|
| MD5 |
9d06d06efeeb9f411ff819ac7a97616b
|
|
| BLAKE2b-256 |
b51a84c14dc75acf56a2cd455ed64d0a6fd8ec351d189e298feac20bab6f58ae
|
File details
Details for the file obj2xml_rs-0.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 238.1 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 |
96effe051ae923b2279c555ba9aac030a67b404d37bbb627ebe8e2a03e79de56
|
|
| MD5 |
bcf91d81dd73bd6f82613b7fb8014984
|
|
| BLAKE2b-256 |
da49010c46561958f440e5466ac510a4e18851491ecb3f6b45d2df467c5217c1
|
File details
Details for the file obj2xml_rs-0.1.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 228.7 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 |
ebc5da6f8d3471b103b832dbcc0f8e14e10af3f9bb33f1ea9f6471fc0bf606af
|
|
| MD5 |
fd6f2b8b0e9e0647499631435218f1c1
|
|
| BLAKE2b-256 |
034fe4f8f9e412954bc77a0ab0a2ee336549d4e1983a97c2da26a4f5296d26da
|
File details
Details for the file obj2xml_rs-0.1.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl
- Upload date:
- Size: 256.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 |
b50fb7bb6ccc5f1fdb38503e4fa0a483e07e60a6ff3055e619092d57c0fba33f
|
|
| MD5 |
d6bbe80c62ce9c88f5ebf50470661ba7
|
|
| BLAKE2b-256 |
47ae9abe058eb7667f7ce5e317f8dfe15630470edc2316aef9c08c8968362539
|
File details
Details for the file obj2xml_rs-0.1.0-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 213.1 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 |
716501b5a10e3a23cf4e6eff1b3dad65b64889248867075dd52d78d1461f1f2a
|
|
| MD5 |
606609ebcbc90bcde368135aa4397bf0
|
|
| BLAKE2b-256 |
86f29bd5c757e0943d6e1def6f025c0a47db24432248ea7e592ce6cbf0da32c9
|
File details
Details for the file obj2xml_rs-0.1.0-cp314-cp314-macosx_10_12_x86_64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp314-cp314-macosx_10_12_x86_64.whl
- Upload date:
- Size: 227.5 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 |
c0a2d55b266c6fa6a66d723df023409d9b802a915e2ec11c67ace8502818a1ab
|
|
| MD5 |
45b4142c571a61fd04996d0eee20ad8c
|
|
| BLAKE2b-256 |
159be26e3bdeb27c7cc8aa3b592271cd42e88420535902f7b678e530739f417a
|
File details
Details for the file obj2xml_rs-0.1.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 226.9 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 |
582e64f55e2fe466512521368eb0eb5481ce4e7ba3788ccf82774b638d1ff87e
|
|
| MD5 |
0d4d70d23e386364ae4b314ab74c5ea2
|
|
| BLAKE2b-256 |
75a6227a42b6bf0b3ac2e53478190bdb585b4005d6046fed32766a3261b3093b
|
File details
Details for the file obj2xml_rs-0.1.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 141.5 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 |
5b7b2a4a48c40770f45b8b65607b4db3e90dc60bbef677fc0693c6298bdbccff
|
|
| MD5 |
fce3d95a3e9d798a3b95f4aa69be5475
|
|
| BLAKE2b-256 |
329b5c6a7a12c42157221ea0a9c527655f1970dbb262f90ee992d4fd37bf883a
|
File details
Details for the file obj2xml_rs-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 240.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 |
1efbf8fa601b9d60a836751f130bd2af88293f2eba0a1cdc42611b75b6152b55
|
|
| MD5 |
58e9e445a0e157d156d123cee059bd20
|
|
| BLAKE2b-256 |
00cc4c6612bc03fe7592b8c9e150df37a573eaab44ba3b14193dbbc6a7c791ff
|
File details
Details for the file obj2xml_rs-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 230.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 |
701fd6d8c1b287b45587150c0a56d2effbe7b187cabbd7701ce10231748fe404
|
|
| MD5 |
37ac6d23255ee9f54385e5d92b2edd63
|
|
| BLAKE2b-256 |
5c0aa654d3515aa0021e9647b30bc4edb1b4a788e79380352f037c4a9c736e69
|
File details
Details for the file obj2xml_rs-0.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl
- Upload date:
- Size: 257.1 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 |
0ebb08a51b26e1dba830830cd9a942283c09d6f9aff42b9cdcb6b1c768470f77
|
|
| MD5 |
9f3569157a26a74ec7d8109d9cb599b4
|
|
| BLAKE2b-256 |
a5a7a2dd0690b27c0b34c2adf69d12a2060e92c0e7382644f15872bf77f7f146
|
File details
Details for the file obj2xml_rs-0.1.0-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 214.7 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 |
807b9bbb6805c04b4c92227dc07ffc5a3e6b0205dc19cdd3ce4a5df20b77434e
|
|
| MD5 |
169ec22c58f04822be7f6303ffa0f0bd
|
|
| BLAKE2b-256 |
185e0a59b43e11c7702d4e1c03e9af3d1518285c92c1a247e535aa8fb95903e9
|
File details
Details for the file obj2xml_rs-0.1.0-cp313-cp313-macosx_10_12_x86_64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp313-cp313-macosx_10_12_x86_64.whl
- Upload date:
- Size: 230.3 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 |
fe3b7dd33707c52eb554e108415fd6f3f6f8a7ee0ac502cc6025a3cb40b025ad
|
|
| MD5 |
f774472d816d49ee8651411a5091ebe9
|
|
| BLAKE2b-256 |
c4857c378181d20325f362842daa09e6f706d7a5fdbad9beb56a7e6611c4dbf1
|
File details
Details for the file obj2xml_rs-0.1.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 141.4 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 |
cf5547e7dc5c06d5d996dc046ea800c023710fe76ac95dd578ecaa95386bef42
|
|
| MD5 |
675ebdc951f4682af9be762a37eb291d
|
|
| BLAKE2b-256 |
46d01c7b47506142614671edc8158131f898bcc6da64bac96738c1a93e06283a
|
File details
Details for the file obj2xml_rs-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 240.0 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 |
86a25633cc4a4b372d60195f0586ca5018eb73a2427a45a5e5faabe25d5daebe
|
|
| MD5 |
db4ca2717393369ea06c9e2d9535807a
|
|
| BLAKE2b-256 |
e36179f7f601c2edcb3df9b6e4850dd79268e4f9d55ba6bf0c255e3bd44ecd68
|
File details
Details for the file obj2xml_rs-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 229.9 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 |
9c25c54889397bda18a467a31242272f8db1668c0ae0224fe0b87ad116f182c2
|
|
| MD5 |
3c66b7ab1ef80926f6578955a167b307
|
|
| BLAKE2b-256 |
178a389b83ec0446ccde3a480e9e7138d6f5241e22e73b0dd97162121cb1d068
|
File details
Details for the file obj2xml_rs-0.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl
- Upload date:
- Size: 257.1 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 |
a0a3bf9abb32009d0a14896a126f8d388115ef69a4a531fde3eb47316c56f375
|
|
| MD5 |
f52dcd1be3a1204c91be9ae9a3e80f62
|
|
| BLAKE2b-256 |
b8c2a98243f62e9c76d94ee06061bac4aaf4fe51e2389d35c2b9cd405e3d3e22
|
File details
Details for the file obj2xml_rs-0.1.0-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 214.3 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 |
f06d7bcca94677de9c63a815a1d3a56fa27ea6436d9d9d5f93b031b74c5ba2a8
|
|
| MD5 |
f96044baed876b274f4543e7ce0799a6
|
|
| BLAKE2b-256 |
f944d57c3f034cf2f8f818675c19dc5ec317769d3b24c41cde435bf844e0a5b3
|
File details
Details for the file obj2xml_rs-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl
- Upload date:
- Size: 229.9 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 |
602d66efec0094b2f82c3c1c715420bd6b0696dca32a99fe817e1b1388edd99f
|
|
| MD5 |
749cb1fef631ec5de6113ba4c76c4602
|
|
| BLAKE2b-256 |
6292d381f0744d7d130f6051174a3aea5ca1bf9983532ab9b2d30f37f7375950
|
File details
Details for the file obj2xml_rs-0.1.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 141.2 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 |
8a5f4b9d1cad1f9e340aa66c12540dea6a40c23699e6ffa51a19d7e13aef6eec
|
|
| MD5 |
eefe650de16cc5d5b74b9eca98042c4c
|
|
| BLAKE2b-256 |
05668a28bbc03076c19671b42557ea47ebef33fd5a78073b688ae644973b5ffc
|
File details
Details for the file obj2xml_rs-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 239.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 |
646c490fcad7c4cdee65290a55c7c055756bec57132530a91a0135b254bc1d69
|
|
| MD5 |
9da5a73240dfe254edae78c76f7feb8b
|
|
| BLAKE2b-256 |
2d8c044f2e4be9e21c151fa4580bb6cad4a4dc1efa91b0804ecf415592699d5e
|
File details
Details for the file obj2xml_rs-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 229.9 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 |
adfb842d03e22ef21a06f8c6f24e3908293370da8bf935df2638224e618f9db0
|
|
| MD5 |
781acb85aea6975cbc20c3e341f140d1
|
|
| BLAKE2b-256 |
639cf8b59ea230e1c922de5ef9f44d12604f06e3f4e3ae9a70179dfad6d1ef5c
|
File details
Details for the file obj2xml_rs-0.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl
- Upload date:
- Size: 256.2 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 |
8e0311792b4a89fbeeb92db8fb1912d652ef2c3acdee890268b59f13c25c1775
|
|
| MD5 |
4422eb0d49ec456ed722330d74cc1809
|
|
| BLAKE2b-256 |
3c28e16e15dc531fca0942100069a5afc8f50d327eaaa43bb468679733966d02
|
File details
Details for the file obj2xml_rs-0.1.0-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 215.2 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 |
1f3088bf0c9eeeedda8acd39e8acd2f6c8274f3e2f119c6eb53e5d6614a1fe08
|
|
| MD5 |
79d81277001dbb2ef529e93ad58bb2c0
|
|
| BLAKE2b-256 |
28541b22d58b4ae96ae14d0e1c04527edd693cbf5dba10d7e2d418dc015c17bd
|
File details
Details for the file obj2xml_rs-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl
- Upload date:
- Size: 230.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 |
eaff698641ea1b36e789c22a6effea5554711ad98649bb5d07dad2c9e88ddacb
|
|
| MD5 |
736329332ab3dd14ff3220ff54865e11
|
|
| BLAKE2b-256 |
41761cbf8bcdce7759811d9e2cdec1e7481769d8f56eae5804ffca87b7143837
|
File details
Details for the file obj2xml_rs-0.1.0-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 141.1 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 |
3059b259b71a4680fd3d53738520deac117b4e833139309f5cef0231003a8bcc
|
|
| MD5 |
1961cbe960f0b6e513e62754a88e8d94
|
|
| BLAKE2b-256 |
f6458ad440b9eae307ffd06139f086cc29d340a0fda8d7f833542fded858fa60
|
File details
Details for the file obj2xml_rs-0.1.0-cp310-cp310-win32.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp310-cp310-win32.whl
- Upload date:
- Size: 135.3 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 |
15080731be5e052284619f19d0e1d2d9bec53435a9f4ef62807d3339793a68cf
|
|
| MD5 |
e829db8530879a0830603a6e4f325d3d
|
|
| BLAKE2b-256 |
0533b81a96c2fb1531d873f2dd61048f70e484f0806907bad36eaa848294a308
|
File details
Details for the file obj2xml_rs-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 239.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 |
7c280086be29b8bf86dbf72a668a6626d22db7d5534c30118908ef5c5d7a8f90
|
|
| MD5 |
aa762dfe3d82cb0e7c07a1888a3c0e17
|
|
| BLAKE2b-256 |
8a5c81f0e162aaeaa4a4583332d4d2850090c05d8c0c5ce3d081669bdb390745
|
File details
Details for the file obj2xml_rs-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 229.9 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 |
6ee8a5e00b78a55bc1e40348feedaf7f2f678f3da53e78df6adcb362a9e510e0
|
|
| MD5 |
d613493e2e589baf4c80e2829d7c5c46
|
|
| BLAKE2b-256 |
64987a1860eeebfda1abea027b4c10ff6b3c06277daacb70d6dc627e83ca216a
|
File details
Details for the file obj2xml_rs-0.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl
- Upload date:
- Size: 256.2 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 |
c6b953cf3b864818e789b9e64e714579faa56e76dc4c827a9f341230b18ec2cf
|
|
| MD5 |
7851f43c125cd8d3d3a4dc905d9dacf2
|
|
| BLAKE2b-256 |
1be1805949bdbd964aec2fe049750afda4bbfefbc9c59a7a3be592b541cecba0
|
File details
Details for the file obj2xml_rs-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 239.2 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 |
e08c765919c5cc3ba1fde9a9afaaac5b1482413d73c15fae21b1f3bd2e99885d
|
|
| MD5 |
a1bed3f442bc748d245ded15045ba173
|
|
| BLAKE2b-256 |
633820c44744a355f5d3b24ccd13acc880862d6cbacaba3d019869d9fb4b93a2
|
File details
Details for the file obj2xml_rs-0.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 229.9 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 |
dcf5b5d8cea1d8c335e387457cc0ee9ba739b8dece1dae16c2f9ad754ff4af59
|
|
| MD5 |
5388cbbc86f8224446b4cc0a4f0014ca
|
|
| BLAKE2b-256 |
4602fe7bc080cca152aa5c25d648a1b815200b86da673c618448f956e21b0ab7
|
File details
Details for the file obj2xml_rs-0.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl
- Upload date:
- Size: 256.2 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 |
af8f1de43dba3894bb9b494898a36a4c5644d7b02e35619ed0f03508f272f311
|
|
| MD5 |
327816b5a1f2427987e92d7099ccb9c2
|
|
| BLAKE2b-256 |
d069048d21546318fadad4a885c43585d1f6fd34e2b8157805460d9e4b9b68b5
|
File details
Details for the file obj2xml_rs-0.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 238.9 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 |
c63efb554676e1d66d630025acbd54e0c7a4f5929c5afe0fe2cd2d54f3080f50
|
|
| MD5 |
7c7e88eb8ab833806209b1afc3d80af1
|
|
| BLAKE2b-256 |
070e98f9390166a8b64b7e132b64475fc17fdabbf0e784cc2e3ffaef9c585327
|
File details
Details for the file obj2xml_rs-0.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 229.8 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 |
d97249da28ae3340d8367abfca509aa5867f0e5f39b83d2c8d7356dcd3a2a6be
|
|
| MD5 |
ad8aff2026a48995a57caa02a987a13d
|
|
| BLAKE2b-256 |
b7cd95bad0da5c08573536e432a93c8ea402e6581d1e5474309073050bdefc44
|
File details
Details for the file obj2xml_rs-0.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl.
File metadata
- Download URL: obj2xml_rs-0.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl
- Upload date:
- Size: 255.8 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 |
dadf1b5ebf13ef69a1a07641a7ef5bbbe123fd14acdbb48cefce3b2329b8a2fc
|
|
| MD5 |
1ace279086fc66f293102c830d52f920
|
|
| BLAKE2b-256 |
2afdcd8841aa87ad4c0e97156036a6040dfce3d865fa57d6932e8656b15e971c
|