Convenience wrapper for exonware-xwformats - provides 'import xwformats' alias
Project description
xwformats
Many serialization formats, one package. Schema (Protobuf, Parquet, Thrift, …), scientific (HDF5, Feather, Zarr, …), database (LMDB, LevelDB, …), plus binary and text. Same converter style as xwsystem; formats register on import. Pick lite, lazy, full, or dev extras to match how you deploy.
Company: eXonware.com · Author: eXonware Backend Team · Email: connect@exonware.com
📦 Install
| Install | What you get | When to use |
|---|---|---|
pip install exonware-xwformats |
Base — exonware-xwsystem[full] (shared text/JSON stack, etc.) + lazy hooks |
Heavier than core-only xwsystem; add [full] for extra heavyweight codecs. |
pip install exonware-xwformats[lazy] |
Lazy - xwsystem[lazy] + lazy extras |
Matches lazy-optional stack in docs. |
pip install exonware-xwformats[full] |
Full - common format deps installed up front | Production or CI; on Windows, LevelDB/RocksDB wheels may be missing (see docs/REF_54_BENCH.md). |
pip install exonware-xwformats[dev] |
Dev - pytest, black, mypy, … | Contributors |
Base install pulls exonware-xwsystem[full] (CSV, JSON, TOML, YAML, XML, and other xwsystem optionals) and enables xwlazy when available. [lazy], [dev], and [full] are extras on top.
🚀 Quick start
from exonware.xwformats import XWFormats
xf = XWFormats()
print(xf.list_formats()) # All registered formats
data = xf.convert(json_bytes, "json", "yaml") # Bidirectional conversion
ser = xf.get_serializer("parquet")
ser.encode(value)
ser.decode(data)
Importing xwformats registers its formats with xwsystem; use xwsystem's codec/facade for detection by file extension. See REF_14_DX and REF_15_API.
✨ What you get
| Area | What's in it |
|---|---|
| Schema | Protobuf, Parquet, Thrift, ORC, Cap'n Proto, FlatBuffers, Arrow. Avro is optional (may be off default import on some platforms - see __init__.py and docs/_archive/KNOWN_ISSUES.md). |
| Scientific | HDF5, Feather, Zarr, NetCDF, MAT. |
| Database | LMDB, LevelDB, RocksDB, GraphDB. |
| Binary / text | UBJSON, Bincode, Dill, Postcard, and RON are implemented in xwformats. BSON, CSV, JSON, TOML, YAML, XML, and other core xwsystem binaries are xwsystem-only — not registered or exported by xwformats. |
| Integration | Same converter/facade as xwsystem; codec registry updated on import. |
Lite = few deps. Lazy = optional format wheels on first use. Full = common optionals pre-installed. Platform notes (e.g. RocksDB on Windows): docs/logs/setup/. Known issues: docs/_archive/KNOWN_ISSUES.md and REF_22_PROJECT.md.
🌐 Ecosystem functional contributions
xwformats extends format coverage; sibling XW libs provide runtime loading strategy, registration, and downstream consumption layers.
You can use xwformats standalone for broad serializer coverage and conversion tasks.
Integrating with additional XW libraries is optional and mainly useful for enterprise and mission-critical pipelines that need unified runtime, storage, and query infrastructure.
| Supporting XW lib | What it provides to xwformats | Functional requirement it satisfies |
|---|---|---|
| XWSystem | Core codec registry/facade and serializer contracts that xwformats registers into. | One unified serialization API despite many optional format backends. |
| XWLazy | On-demand dependency loading/install behavior for optional format stacks. | Practical deployment of many formats without forcing heavy installs. |
| XWData | Higher-level data transformation workflows that consume xwformats codecs. | Real pipeline usage beyond encode/decode-only primitives. |
| XWStorage | Persistence engine integrations that use specialized format serializers. | Storage interoperability for scientific/schema/database-oriented payloads. |
| XWJSON | Binary JSON and local data-engine flows that can interoperate with format conversion paths. | Efficient local format conversion and transition workflows. |
| XWQuery | Query pipelines over data loaded via format serializers. | End-to-end analytics/transform use cases after format normalization. |
Competitive edge: instead of isolated serializer plugins, xwformats plugs into a shared runtime and data stack so advanced formats are immediately usable in storage/query/application workflows.
📖 Docs and tests
Aligned with project REFs and docs/GUIDE_01_USAGE.md (see GUIDE_63_README in the monorepo).
- Start: docs/INDEX.md - index and quick links.
- Use: docs/GUIDE_01_USAGE.md - usage and format list.
- Requirements / status: docs/REF_01_REQ.md, docs/REF_22_PROJECT.md.
- API / design: docs/REF_15_API.md, docs/REF_13_ARCH.md, docs/REF_14_DX.md.
- Tests: docs/REF_51_TEST.md. Summaries: docs/logs/tests/. Run:
python tests/runner.pyor pytest from repo root.
📜 License and links
Apache-2.0 - see LICENSE.
- Homepage: https://exonware.com
- Repository: https://github.com/exonware/xwformats
⏱️ Async Support
- xwformats is primarily synchronous in its current implementation.
- Source validation: 0 async def definitions and 0 await usages under src/.
- This module still composes with async-capable xw libraries at integration boundaries when needed.
Version: 0.9.0.34 | Updated: 25-Apr-2026
Built with ❤️ by eXonware.com - Revolutionizing Python Development Since 2025
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 Distribution
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 xwformats-0.9.0.35.tar.gz.
File metadata
- Download URL: xwformats-0.9.0.35.tar.gz
- Upload date:
- Size: 58.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
65a5a8f003d97dd9e7aa2988d12f99d019d3c373d1db090dfe87a4642909b687
|
|
| MD5 |
5e6086eda61e1216fe1da0628e71635a
|
|
| BLAKE2b-256 |
61655ededc0dc71d591461eeea508db97e514ca33d59c80072224f7c36868c98
|
File details
Details for the file xwformats-0.9.0.35-py3-none-any.whl.
File metadata
- Download URL: xwformats-0.9.0.35-py3-none-any.whl
- Upload date:
- Size: 11.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f6d6ff229ea7840f373fb3f2c81b4b2f299e4612bbb51325f9713da6b50c11f
|
|
| MD5 |
12cee394e1ea0f931c958ca38445c219
|
|
| BLAKE2b-256 |
95da69cc1118c75cca0177545739c62c2e6f5515241e7ee6bbc9e0dc936d6067
|