Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

obj2xml_rs-0.1.0.tar.gz (23.2 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

obj2xml_rs-0.1.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (238.8 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

obj2xml_rs-0.1.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (229.9 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

obj2xml_rs-0.1.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl (256.7 kB view details)

Uploaded PyPymanylinux: glibc 2.5+ i686

obj2xml_rs-0.1.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (226.5 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

obj2xml_rs-0.1.0-cp314-cp314-win_amd64.whl (140.0 kB view details)

Uploaded CPython 3.14Windows x86-64

obj2xml_rs-0.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (238.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

obj2xml_rs-0.1.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (228.7 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

obj2xml_rs-0.1.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl (256.4 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.5+ i686

obj2xml_rs-0.1.0-cp314-cp314-macosx_11_0_arm64.whl (213.1 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

obj2xml_rs-0.1.0-cp314-cp314-macosx_10_12_x86_64.whl (227.5 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

obj2xml_rs-0.1.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (226.9 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

obj2xml_rs-0.1.0-cp313-cp313-win_amd64.whl (141.5 kB view details)

Uploaded CPython 3.13Windows x86-64

obj2xml_rs-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (240.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

obj2xml_rs-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (230.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

obj2xml_rs-0.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl (257.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.5+ i686

obj2xml_rs-0.1.0-cp313-cp313-macosx_11_0_arm64.whl (214.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

obj2xml_rs-0.1.0-cp313-cp313-macosx_10_12_x86_64.whl (230.3 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

obj2xml_rs-0.1.0-cp312-cp312-win_amd64.whl (141.4 kB view details)

Uploaded CPython 3.12Windows x86-64

obj2xml_rs-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (240.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

obj2xml_rs-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (229.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

obj2xml_rs-0.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl (257.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.5+ i686

obj2xml_rs-0.1.0-cp312-cp312-macosx_11_0_arm64.whl (214.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

obj2xml_rs-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl (229.9 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

obj2xml_rs-0.1.0-cp311-cp311-win_amd64.whl (141.2 kB view details)

Uploaded CPython 3.11Windows x86-64

obj2xml_rs-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (239.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

obj2xml_rs-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (229.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

obj2xml_rs-0.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl (256.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.5+ i686

obj2xml_rs-0.1.0-cp311-cp311-macosx_11_0_arm64.whl (215.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

obj2xml_rs-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl (230.7 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

obj2xml_rs-0.1.0-cp310-cp310-win_amd64.whl (141.1 kB view details)

Uploaded CPython 3.10Windows x86-64

obj2xml_rs-0.1.0-cp310-cp310-win32.whl (135.3 kB view details)

Uploaded CPython 3.10Windows x86

obj2xml_rs-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (239.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

obj2xml_rs-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (229.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

obj2xml_rs-0.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl (256.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.5+ i686

obj2xml_rs-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (239.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

obj2xml_rs-0.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (229.9 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

obj2xml_rs-0.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl (256.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.5+ i686

obj2xml_rs-0.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (238.9 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

obj2xml_rs-0.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (229.8 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

obj2xml_rs-0.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl (255.8 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.5+ i686

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

Hashes for obj2xml_rs-0.1.0.tar.gz
Algorithm Hash digest
SHA256 541733a3073e3f3df14d856a420a7c6f944687f2e1b6b706295bcdf0000bdecd
MD5 360c787ed17f848aec4f05e8377367ea
BLAKE2b-256 e98cf6aa11d79df41ec8eb78bfc142e47deffad810b6c654976cac988e797b51

See more details on using hashes here.

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

File hashes

Hashes for obj2xml_rs-0.1.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 617ad564b4d8af790936515c671c3e0c8e3b6b54440897ee68c5acf004c45fdb
MD5 6e049ab5a878cfbd1e9dffbd9e27bcfb
BLAKE2b-256 319539895bdd9d55cdbfbd5839df08f84ff977d73e5ad3606361aa15f7ea7978

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 22fb7c3c18ee184a761c02f68dc365922dde9f9da9b8d8610d6cff1151fea17a
MD5 1e5e63c1fa79a48fe8014cd47197563b
BLAKE2b-256 0c37bb743c2170cae36270171095686a4572ede80c406613b64695053a8aaad3

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 8a65e8e556dd3a21867c0cad69876971509bba430bf6d13c89d51ffb16625ae3
MD5 06f1445229b08338cfee3f3538db1c41
BLAKE2b-256 6c7ebe979da828864b70bd26c09517a99c0aa032f68acc05e9bd5b354dd7c758

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2d546a1a0fc9e300ffec98d3c260f9b733944695fcf505bd2a23f3c43b72c35e
MD5 c01b6e13d8530ec3976043ae4d9c8093
BLAKE2b-256 0468f31666fc38bfb23c19ef143ca99172fcf4afa1d465bc1f1d70299942db78

See more details on using hashes here.

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

Hashes for obj2xml_rs-0.1.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 699c04d579743685e9feb7cdd9e6445ebef3da80e9159bc71b73a86a0b188622
MD5 9d06d06efeeb9f411ff819ac7a97616b
BLAKE2b-256 b51a84c14dc75acf56a2cd455ed64d0a6fd8ec351d189e298feac20bab6f58ae

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 96effe051ae923b2279c555ba9aac030a67b404d37bbb627ebe8e2a03e79de56
MD5 bcf91d81dd73bd6f82613b7fb8014984
BLAKE2b-256 da49010c46561958f440e5466ac510a4e18851491ecb3f6b45d2df467c5217c1

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ebc5da6f8d3471b103b832dbcc0f8e14e10af3f9bb33f1ea9f6471fc0bf606af
MD5 fd6f2b8b0e9e0647499631435218f1c1
BLAKE2b-256 034fe4f8f9e412954bc77a0ab0a2ee336549d4e1983a97c2da26a4f5296d26da

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 b50fb7bb6ccc5f1fdb38503e4fa0a483e07e60a6ff3055e619092d57c0fba33f
MD5 d6bbe80c62ce9c88f5ebf50470661ba7
BLAKE2b-256 47ae9abe058eb7667f7ce5e317f8dfe15630470edc2316aef9c08c8968362539

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 716501b5a10e3a23cf4e6eff1b3dad65b64889248867075dd52d78d1461f1f2a
MD5 606609ebcbc90bcde368135aa4397bf0
BLAKE2b-256 86f29bd5c757e0943d6e1def6f025c0a47db24432248ea7e592ce6cbf0da32c9

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c0a2d55b266c6fa6a66d723df023409d9b802a915e2ec11c67ace8502818a1ab
MD5 45b4142c571a61fd04996d0eee20ad8c
BLAKE2b-256 159be26e3bdeb27c7cc8aa3b592271cd42e88420535902f7b678e530739f417a

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 582e64f55e2fe466512521368eb0eb5481ce4e7ba3788ccf82774b638d1ff87e
MD5 0d4d70d23e386364ae4b314ab74c5ea2
BLAKE2b-256 75a6227a42b6bf0b3ac2e53478190bdb585b4005d6046fed32766a3261b3093b

See more details on using hashes here.

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

Hashes for obj2xml_rs-0.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 5b7b2a4a48c40770f45b8b65607b4db3e90dc60bbef677fc0693c6298bdbccff
MD5 fce3d95a3e9d798a3b95f4aa69be5475
BLAKE2b-256 329b5c6a7a12c42157221ea0a9c527655f1970dbb262f90ee992d4fd37bf883a

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1efbf8fa601b9d60a836751f130bd2af88293f2eba0a1cdc42611b75b6152b55
MD5 58e9e445a0e157d156d123cee059bd20
BLAKE2b-256 00cc4c6612bc03fe7592b8c9e150df37a573eaab44ba3b14193dbbc6a7c791ff

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 701fd6d8c1b287b45587150c0a56d2effbe7b187cabbd7701ce10231748fe404
MD5 37ac6d23255ee9f54385e5d92b2edd63
BLAKE2b-256 5c0aa654d3515aa0021e9647b30bc4edb1b4a788e79380352f037c4a9c736e69

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 0ebb08a51b26e1dba830830cd9a942283c09d6f9aff42b9cdcb6b1c768470f77
MD5 9f3569157a26a74ec7d8109d9cb599b4
BLAKE2b-256 a5a7a2dd0690b27c0b34c2adf69d12a2060e92c0e7382644f15872bf77f7f146

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 807b9bbb6805c04b4c92227dc07ffc5a3e6b0205dc19cdd3ce4a5df20b77434e
MD5 169ec22c58f04822be7f6303ffa0f0bd
BLAKE2b-256 185e0a59b43e11c7702d4e1c03e9af3d1518285c92c1a247e535aa8fb95903e9

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 fe3b7dd33707c52eb554e108415fd6f3f6f8a7ee0ac502cc6025a3cb40b025ad
MD5 f774472d816d49ee8651411a5091ebe9
BLAKE2b-256 c4857c378181d20325f362842daa09e6f706d7a5fdbad9beb56a7e6611c4dbf1

See more details on using hashes here.

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

Hashes for obj2xml_rs-0.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 cf5547e7dc5c06d5d996dc046ea800c023710fe76ac95dd578ecaa95386bef42
MD5 675ebdc951f4682af9be762a37eb291d
BLAKE2b-256 46d01c7b47506142614671edc8158131f898bcc6da64bac96738c1a93e06283a

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 86a25633cc4a4b372d60195f0586ca5018eb73a2427a45a5e5faabe25d5daebe
MD5 db4ca2717393369ea06c9e2d9535807a
BLAKE2b-256 e36179f7f601c2edcb3df9b6e4850dd79268e4f9d55ba6bf0c255e3bd44ecd68

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9c25c54889397bda18a467a31242272f8db1668c0ae0224fe0b87ad116f182c2
MD5 3c66b7ab1ef80926f6578955a167b307
BLAKE2b-256 178a389b83ec0446ccde3a480e9e7138d6f5241e22e73b0dd97162121cb1d068

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 a0a3bf9abb32009d0a14896a126f8d388115ef69a4a531fde3eb47316c56f375
MD5 f52dcd1be3a1204c91be9ae9a3e80f62
BLAKE2b-256 b8c2a98243f62e9c76d94ee06061bac4aaf4fe51e2389d35c2b9cd405e3d3e22

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f06d7bcca94677de9c63a815a1d3a56fa27ea6436d9d9d5f93b031b74c5ba2a8
MD5 f96044baed876b274f4543e7ce0799a6
BLAKE2b-256 f944d57c3f034cf2f8f818675c19dc5ec317769d3b24c41cde435bf844e0a5b3

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 602d66efec0094b2f82c3c1c715420bd6b0696dca32a99fe817e1b1388edd99f
MD5 749cb1fef631ec5de6113ba4c76c4602
BLAKE2b-256 6292d381f0744d7d130f6051174a3aea5ca1bf9983532ab9b2d30f37f7375950

See more details on using hashes here.

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

Hashes for obj2xml_rs-0.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8a5f4b9d1cad1f9e340aa66c12540dea6a40c23699e6ffa51a19d7e13aef6eec
MD5 eefe650de16cc5d5b74b9eca98042c4c
BLAKE2b-256 05668a28bbc03076c19671b42557ea47ebef33fd5a78073b688ae644973b5ffc

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 646c490fcad7c4cdee65290a55c7c055756bec57132530a91a0135b254bc1d69
MD5 9da5a73240dfe254edae78c76f7feb8b
BLAKE2b-256 2d8c044f2e4be9e21c151fa4580bb6cad4a4dc1efa91b0804ecf415592699d5e

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 adfb842d03e22ef21a06f8c6f24e3908293370da8bf935df2638224e618f9db0
MD5 781acb85aea6975cbc20c3e341f140d1
BLAKE2b-256 639cf8b59ea230e1c922de5ef9f44d12604f06e3f4e3ae9a70179dfad6d1ef5c

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 8e0311792b4a89fbeeb92db8fb1912d652ef2c3acdee890268b59f13c25c1775
MD5 4422eb0d49ec456ed722330d74cc1809
BLAKE2b-256 3c28e16e15dc531fca0942100069a5afc8f50d327eaaa43bb468679733966d02

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1f3088bf0c9eeeedda8acd39e8acd2f6c8274f3e2f119c6eb53e5d6614a1fe08
MD5 79d81277001dbb2ef529e93ad58bb2c0
BLAKE2b-256 28541b22d58b4ae96ae14d0e1c04527edd693cbf5dba10d7e2d418dc015c17bd

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 eaff698641ea1b36e789c22a6effea5554711ad98649bb5d07dad2c9e88ddacb
MD5 736329332ab3dd14ff3220ff54865e11
BLAKE2b-256 41761cbf8bcdce7759811d9e2cdec1e7481769d8f56eae5804ffca87b7143837

See more details on using hashes here.

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

Hashes for obj2xml_rs-0.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3059b259b71a4680fd3d53738520deac117b4e833139309f5cef0231003a8bcc
MD5 1961cbe960f0b6e513e62754a88e8d94
BLAKE2b-256 f6458ad440b9eae307ffd06139f086cc29d340a0fda8d7f833542fded858fa60

See more details on using hashes here.

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

Hashes for obj2xml_rs-0.1.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 15080731be5e052284619f19d0e1d2d9bec53435a9f4ef62807d3339793a68cf
MD5 e829db8530879a0830603a6e4f325d3d
BLAKE2b-256 0533b81a96c2fb1531d873f2dd61048f70e484f0806907bad36eaa848294a308

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7c280086be29b8bf86dbf72a668a6626d22db7d5534c30118908ef5c5d7a8f90
MD5 aa762dfe3d82cb0e7c07a1888a3c0e17
BLAKE2b-256 8a5c81f0e162aaeaa4a4583332d4d2850090c05d8c0c5ce3d081669bdb390745

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6ee8a5e00b78a55bc1e40348feedaf7f2f678f3da53e78df6adcb362a9e510e0
MD5 d613493e2e589baf4c80e2829d7c5c46
BLAKE2b-256 64987a1860eeebfda1abea027b4c10ff6b3c06277daacb70d6dc627e83ca216a

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 c6b953cf3b864818e789b9e64e714579faa56e76dc4c827a9f341230b18ec2cf
MD5 7851f43c125cd8d3d3a4dc905d9dacf2
BLAKE2b-256 1be1805949bdbd964aec2fe049750afda4bbfefbc9c59a7a3be592b541cecba0

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e08c765919c5cc3ba1fde9a9afaaac5b1482413d73c15fae21b1f3bd2e99885d
MD5 a1bed3f442bc748d245ded15045ba173
BLAKE2b-256 633820c44744a355f5d3b24ccd13acc880862d6cbacaba3d019869d9fb4b93a2

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dcf5b5d8cea1d8c335e387457cc0ee9ba739b8dece1dae16c2f9ad754ff4af59
MD5 5388cbbc86f8224446b4cc0a4f0014ca
BLAKE2b-256 4602fe7bc080cca152aa5c25d648a1b815200b86da673c618448f956e21b0ab7

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 af8f1de43dba3894bb9b494898a36a4c5644d7b02e35619ed0f03508f272f311
MD5 327816b5a1f2427987e92d7099ccb9c2
BLAKE2b-256 d069048d21546318fadad4a885c43585d1f6fd34e2b8157805460d9e4b9b68b5

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c63efb554676e1d66d630025acbd54e0c7a4f5929c5afe0fe2cd2d54f3080f50
MD5 7c7e88eb8ab833806209b1afc3d80af1
BLAKE2b-256 070e98f9390166a8b64b7e132b64475fc17fdabbf0e784cc2e3ffaef9c585327

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d97249da28ae3340d8367abfca509aa5867f0e5f39b83d2c8d7356dcd3a2a6be
MD5 ad8aff2026a48995a57caa02a987a13d
BLAKE2b-256 b7cd95bad0da5c08573536e432a93c8ea402e6581d1e5474309073050bdefc44

See more details on using hashes here.

File details

Details for the file obj2xml_rs-0.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for obj2xml_rs-0.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 dadf1b5ebf13ef69a1a07641a7ef5bbbe123fd14acdbb48cefce3b2329b8a2fc
MD5 1ace279086fc66f293102c830d52f920
BLAKE2b-256 2afdcd8841aa87ad4c0e97156036a6040dfce3d865fa57d6932e8656b15e971c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page