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.
Release files for obj2xml-rs 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| obj2xml_rs-0.2.0.tar.gz | 29.5 kB | Details |
Built distributions (wheels)
Total release size: 10.5 MB
Release files / obj2xml_rs-0.2.0.tar.gz
| Download URL | obj2xml_rs-0.2.0.tar.gz |
|---|---|
| Size | 29.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9367ef30ef48bd9b76dcb6be9fa9ed4fb2c183c518e121b49e96ee8ed605321b
|
|
BLAKE2b-256 checksum How to use checksums |
b23f847fbee1b0cd87e951524de0d94fa4a79069cd465ad0957280d7cfdbfe41
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | obj2xml_rs-0.2.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 277.4 kB |
| Tags | Linux glibc 2.17+ x86-64 PyPy 3.11 PyPy 3.11 7.3 |
|
SHA-256 checksum How to use checksums |
773f00f8842acf40332559b6d6782ac7e9094b1bb561799193854932d91020bc
|
|
BLAKE2b-256 checksum How to use checksums |
7f08a758ba939326146b1ad0dd7992abb3f0d39c5729443eb9206c2e84434307
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | obj2xml_rs-0.2.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 265.8 kB |
| Tags | Linux glibc 2.17+ ARM64 PyPy 3.11 PyPy 3.11 7.3 |
|
SHA-256 checksum How to use checksums |
8d3fe8fa8e984528b592d452182716b909c36275bccba936984a64ced3f3a64a
|
|
BLAKE2b-256 checksum How to use checksums |
0ff315f4857458a37218f1fc860b4cd89e12af590b9a3725a11502cef8ac2a2f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl
| Download URL | obj2xml_rs-0.2.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl |
|---|---|
| Size | 296.8 kB |
| Tags | Linux glibc 2.5+ x86-32 PyPy 3.11 PyPy 3.11 7.3 |
|
SHA-256 checksum How to use checksums |
178f81455237bc5e1881b4c833261f2683442a605a0c28b3e463fa2ed5d1a9f0
|
|
BLAKE2b-256 checksum How to use checksums |
2b9a5e1c27beafe73b077af8bb4b5d6fa0e99752c9d743cab42af7355dcff12c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | obj2xml_rs-0.2.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 260.1 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
51846e6093431ab9227d80aa55ae3c6c9f6538112b225906ef2ac23aca3d9332
|
|
BLAKE2b-256 checksum How to use checksums |
6f4a4d893cd02de1a7859301bdb3618c25ea3d78671bf4e4583931b001fd9381
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp314-cp314-win_amd64.whl
| Download URL | obj2xml_rs-0.2.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 182.2 kB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
4c4b0e2d54eea513579ce02273bc7c999acb49a634b39d1d1ee2b4137ba451dc
|
|
BLAKE2b-256 checksum How to use checksums |
1efad55366932cd06c40a264ecd5ef00c2a982b60d3f6577f83122fbfa6f7d39
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | obj2xml_rs-0.2.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 275.6 kB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
a446eabecaffffb89935f44a844bb473f77c2b04e0fb168796cd1e9daf2f0701
|
|
BLAKE2b-256 checksum How to use checksums |
d822caebdf0368a100059c175f6b51ea3127fd82f09102dafe6f41deee3d1550
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | obj2xml_rs-0.2.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 264.2 kB |
| Tags | CPython 3.14 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
a25a0796aff33de8f4478d46d05ebb5d0d2a80ee4d9520c2c9ec065c98a5d8f2
|
|
BLAKE2b-256 checksum How to use checksums |
5d0be9fe5b64e239b1612c0d0cab0de28df40a0d81021a8f2c3e56fb2ede0f1e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl
| Download URL | obj2xml_rs-0.2.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl |
|---|---|
| Size | 296.4 kB |
| Tags | CPython 3.14 Linux glibc 2.5+ x86-32 |
|
SHA-256 checksum How to use checksums |
303e0a5d79c4dd64e3a56da556fc5cec7905af2b50661a61245ea9af8233cf51
|
|
BLAKE2b-256 checksum How to use checksums |
8a9474368d4e2de75a829e97432a45cd04254d3cb601544317e455f66c214953
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | obj2xml_rs-0.2.0-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 250.2 kB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
ff5c4c31457ddecda89e67cec425049f041c9ecc87aa37899cd324b4095777a8
|
|
BLAKE2b-256 checksum How to use checksums |
50d3ab3b18653194c5d6add03902c76712a5c30a75ac8f4d7f7596f7b95d8888
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp314-cp314-macosx_10_12_x86_64.whl
| Download URL | obj2xml_rs-0.2.0-cp314-cp314-macosx_10_12_x86_64.whl |
|---|---|
| Size | 268.9 kB |
| Tags | CPython 3.14 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
7fe037ccff6ea98e85ba0f55bd97de596e7be690c10bacf5f560b681cbff6a08
|
|
BLAKE2b-256 checksum How to use checksums |
f045ee8558ac982eae9a4a153e432876a2f99edaf6a758b8efc1f6ee921c1b9d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | obj2xml_rs-0.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 261.7 kB |
| Tags | CPython 3.13 CPython 3.13 free-threading Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
d1b801e7dd417546c8a57c25b3b37c9bd2cf533a97da166ebe5d3d3f6f5780c1
|
|
BLAKE2b-256 checksum How to use checksums |
68aea8de2d3205616e99bd389b7d15d1f0851955838c459d6e5c17d8c1696d1f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp313-cp313-win_amd64.whl
| Download URL | obj2xml_rs-0.2.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 183.7 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
f3790079f77bb7321e349c88ed2eb66cb0a884423487c1105d77426cfd7c6da3
|
|
BLAKE2b-256 checksum How to use checksums |
c764efe9ca633a9afd4e5a28fddbd31650be349802eacfabacb8ba970525dc09
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | obj2xml_rs-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 278.1 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
c1c0f036e26f13aa1a5d4c6d090200ab1857316b68e378b505aef9b4db1ae3fb
|
|
BLAKE2b-256 checksum How to use checksums |
21054721ec263d37c24cf661f21a480311aba5ed86047cdd68ecea33668db8c6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | obj2xml_rs-0.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 265.0 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
7107dde79f25d58148d34dc7530f8ab8b87fb288cd969e999b0352ce33f36dfa
|
|
BLAKE2b-256 checksum How to use checksums |
c69c14b6e206e7d71bd40d754da06c64a452c1a62fe61a9cdb121679baaddce6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl
| Download URL | obj2xml_rs-0.2.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl |
|---|---|
| Size | 297.2 kB |
| Tags | CPython 3.13 Linux glibc 2.5+ x86-32 |
|
SHA-256 checksum How to use checksums |
90a88241e4ce9b861075fde4f3e39f7d8273a6a15f2b13e9ddcf211beb75d5bc
|
|
BLAKE2b-256 checksum How to use checksums |
6ba7f2901c6331f9ad39e4583745d7847e737c21cd0c04ee88bb824335ea4d2f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | obj2xml_rs-0.2.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 252.4 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
9caae22916ef0380f347f1194b06e901bacb460c6b18ecb114d89dbc7d7fc213
|
|
BLAKE2b-256 checksum How to use checksums |
75846beeb669e5eeee474b0795438d97b331231950b73869114a93ff868a3f4b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp313-cp313-macosx_10_12_x86_64.whl
| Download URL | obj2xml_rs-0.2.0-cp313-cp313-macosx_10_12_x86_64.whl |
|---|---|
| Size | 271.4 kB |
| Tags | CPython 3.13 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
9fa726cb797586e065f9f64b266178b2e21688dfe538ef892619d6046606fa6c
|
|
BLAKE2b-256 checksum How to use checksums |
b586083165c9613bfcb184fc479710c988e92360212151577e0bf8f7936ba25b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp312-cp312-win_amd64.whl
| Download URL | obj2xml_rs-0.2.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 184.1 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
0833e3ca41e9aa5ab3a9237719791b13ca056a240e80082b3b493fad6617029d
|
|
BLAKE2b-256 checksum How to use checksums |
ce8c7250ee56bff4693149199384134feec52fae93c9c601a7caeb3130744029
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | obj2xml_rs-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 278.3 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
5f84ca77d6a550bb84cf578e20307803ae9f7165e5e46ea41c367cda7b036c72
|
|
BLAKE2b-256 checksum How to use checksums |
34e655db787fcc31f0e3ea0db83ac24af50f3d48ffe286df80431b5d3e851fa1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | obj2xml_rs-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 264.7 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
0124ee5df026af3b52654739efa47f1b6679b4ac45542ddc69a333c254528598
|
|
BLAKE2b-256 checksum How to use checksums |
534ee9f523a18217be5c0daf1cec531ac599fb904f4a5dead97e8a15d05bd073
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl
| Download URL | obj2xml_rs-0.2.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl |
|---|---|
| Size | 296.4 kB |
| Tags | CPython 3.12 Linux glibc 2.5+ x86-32 |
|
SHA-256 checksum How to use checksums |
f4c61633d69f2457446891c6842302ed8c67b066cd9966977c7c7bc4bd817e05
|
|
BLAKE2b-256 checksum How to use checksums |
925e9302f4e55f98acb3275b9ecd709e295c2904c688ae600e53f634708714fa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | obj2xml_rs-0.2.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 251.0 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
ef5883d00153b2908c8796127a0f8bb13e32dd112069fe38446fc0c9a536b9cb
|
|
BLAKE2b-256 checksum How to use checksums |
af62ea50b0e8a0e8c87b9912c91dc907325a40982477082d2a75ada55dffea40
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp312-cp312-macosx_10_12_x86_64.whl
| Download URL | obj2xml_rs-0.2.0-cp312-cp312-macosx_10_12_x86_64.whl |
|---|---|
| Size | 270.8 kB |
| Tags | CPython 3.12 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
5ab332cc8218e5e3de6ec452da070f280b6f90e9c25b2f593c046d24e3c3d640
|
|
BLAKE2b-256 checksum How to use checksums |
37b69d4c71cbf3dfca2b9e9bf5662275b92a300a7c9fa020f0a92ad896117e85
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp311-cp311-win_amd64.whl
| Download URL | obj2xml_rs-0.2.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 184.0 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
70dca09faf11ebfccb9bff9702359a8f0ef44f83467a1664c0181d807e7b3560
|
|
BLAKE2b-256 checksum How to use checksums |
9de22d97c68bd752823c69973db8b356e0797c74e5636aa253f59b4bb107cf38
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | obj2xml_rs-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 278.2 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
bd6a1662233772d24c4907767325b62244599fbf92f151df0f0e83dd841d5f9d
|
|
BLAKE2b-256 checksum How to use checksums |
37b22551ec155ebcc27990f0d49c6027f63a0de14c1ec9e226ee36f47356eefc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | obj2xml_rs-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 265.0 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
eb929b5fe742abf385e7ee1222c35fe387864fa174969814e44ac042e3d418b9
|
|
BLAKE2b-256 checksum How to use checksums |
e61b6dfc06eef7090899b6af3ee8ec4774f6a75c6bdc0427db1e5be1665d7020
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl
| Download URL | obj2xml_rs-0.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl |
|---|---|
| Size | 297.0 kB |
| Tags | CPython 3.11 Linux glibc 2.5+ x86-32 |
|
SHA-256 checksum How to use checksums |
33440e26624e00a88a41b45c6742110650cd9081fcf0834fe2bf89baf466ceb1
|
|
BLAKE2b-256 checksum How to use checksums |
70632bd79adddc60200bc36d988b5f13a66d308b2257794829c39975fcbdecfe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | obj2xml_rs-0.2.0-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 253.8 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
4ac55b216dd5c930aeaac6b9ccb8190e83f0519686c8881cf2bee151708dd248
|
|
BLAKE2b-256 checksum How to use checksums |
2e05be97210ba753e762a4c0927895741592e3d3c357c636ab37a581a0e8450d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp311-cp311-macosx_10_12_x86_64.whl
| Download URL | obj2xml_rs-0.2.0-cp311-cp311-macosx_10_12_x86_64.whl |
|---|---|
| Size | 271.7 kB |
| Tags | CPython 3.11 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
774828c2f04755b25a7b96120fbbd62d57f65259f24aa650dd20a2c372e6ab0c
|
|
BLAKE2b-256 checksum How to use checksums |
b73c1fa5aeeb41950df93b4d6d20fdf3da73fde7e2f5dc28aef04e4f1cd5bc28
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp310-cp310-win_amd64.whl
| Download URL | obj2xml_rs-0.2.0-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 184.0 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
de343973396ac044cb1b7a1d2d049414680aa37645d90e54f59fa9397c9499e9
|
|
BLAKE2b-256 checksum How to use checksums |
392553fee3e8cf80754b99502844d12653258e7fca3cf3457a37b1281dd58bec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp310-cp310-win32.whl
| Download URL | obj2xml_rs-0.2.0-cp310-cp310-win32.whl |
|---|---|
| Size | 176.8 kB |
| Tags | CPython 3.10 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
357fc4e3c4155414e712c43dffc7e69ba45c77f2651ab1f294bb5be379816092
|
|
BLAKE2b-256 checksum How to use checksums |
c222f0d7f589af301ceab7c316c06bcfa50cfbb6abd136ca2be1dbc988a9bb67
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | obj2xml_rs-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 278.2 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
778191e7e616085b718d8a42e390be7f803d83510da628cbdb0bd8bdbb454e5f
|
|
BLAKE2b-256 checksum How to use checksums |
0ba16ceb4cf15ca406596e9127378abe60d6d7bc39461b9e9c26ad790b953ff1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | obj2xml_rs-0.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 265.2 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
82ef5d1df50ebfc1d4ddf25935dc1ef2ab9677c549a48e3c2f196640e0b68ddc
|
|
BLAKE2b-256 checksum How to use checksums |
f1dcec2fc3eaa6087f1f465ce3a7f9fe0663878f6091347331347ae1463722ff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl
| Download URL | obj2xml_rs-0.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl |
|---|---|
| Size | 297.1 kB |
| Tags | CPython 3.10 Linux glibc 2.5+ x86-32 |
|
SHA-256 checksum How to use checksums |
452092dadcf7d1ba7059cce0ff357056a5531be8f3e994e00f7b1c3caa928281
|
|
BLAKE2b-256 checksum How to use checksums |
5c1ccd30c98da8233ba21de5d0c2cd426372ff050b7e33812929218d01dd23be
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | obj2xml_rs-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 278.6 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
7761c9398ecb5460aad5aec74bee6be702f20a57bf577297b299e0bd92a34dd5
|
|
BLAKE2b-256 checksum How to use checksums |
3ac36ac99f75a11d43a45f1d6792049894b7e73c8157d9123cbcc8d15c8672e9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | obj2xml_rs-0.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 265.5 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
4a53e392e8926d4c7802973297aeaf2ab0f3834fc7e47deec9ff240d6ef14d48
|
|
BLAKE2b-256 checksum How to use checksums |
1dd020e4af37f5816c7c3bd6bccfe7de893f4cb60370ba292fa9315044e787aa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl
| Download URL | obj2xml_rs-0.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl |
|---|---|
| Size | 297.5 kB |
| Tags | CPython 3.9 Linux glibc 2.5+ x86-32 |
|
SHA-256 checksum How to use checksums |
f281fb057750d3c40cecb97d6e049eccd9f3cb80dcd88ff2dc720c32ef6530ed
|
|
BLAKE2b-256 checksum How to use checksums |
88fd88219293027727b13c3076d9c96c17c90fa898bb45499d9e06fca5373ef5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | obj2xml_rs-0.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 278.5 kB |
| Tags | CPython 3.8 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
5b08caed6c2958954a25709608fa1e2c704e221b6b4a462254a10e1d335e5646
|
|
BLAKE2b-256 checksum How to use checksums |
821ae672d468d57ba160cbf34219adda631df7867388a1212658fc2753778dc1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | obj2xml_rs-0.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 265.2 kB |
| Tags | CPython 3.8 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
3bf521e52641a99ce2417288b8974cb8d4d2ddd804d56d3eb8b7cf657ee49ae0
|
|
BLAKE2b-256 checksum How to use checksums |
f66ed0969c57d475f0408cdeee90b95b3e7ea32383bc83cfd8113dac57cc8bff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / obj2xml_rs-0.2.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl
| Download URL | obj2xml_rs-0.2.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl |
|---|---|
| Size | 297.1 kB |
| Tags | CPython 3.8 Linux glibc 2.5+ x86-32 |
|
SHA-256 checksum How to use checksums |
aed74051f775c8124a5e7e4b128ede8611b38f222b0cadd0513db9137215c759
|
|
BLAKE2b-256 checksum How to use checksums |
11b2e06c3848853900cc71cfb564fe89037c8fad684d24db308113e8b3a23484
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|