Skip to content

Python module for XDR (IETF RFC1014 / RFC1832 / RFC4506) encoding and decoding

License

Notifications You must be signed in to change notification settings

da4089/py-xdrlib

Repository files navigation

py-xdrlib

Build Status Docs Coverage PyPI Python PePY Downloads PePY Monthly

This is a copy of the Python xdrlib module, present in the standard library from release 1.4 to release 3.12. This module will be maintained with a compatible API and functionality for as long as it is possible and useful.

Removal from Standard Library

PEP-594 proposed the removal of a number of less commonly used modules from the standard library. The removal of xdrlib was justified on the basis that it is rarely used other than for NFS at the time of writing in 2019.

The last version of Python to support xdrlib was 3.12; the module is no longer part of the standard library in 3.13 and later.

Supported Python Versions

This library supports the CPython versions supported by the Python Software Foundation, plus an additional year.

Currently, that means that Python 3.8, moved to end-of-life by the PSF on 2024-10-07, will be supported by py-xdrlib until 2025-10-07.

Roadmap

  • Tests
    • GitHub CI integration
    • Based off current test code from 3.11
    • See if flit supports a test step
    • coverage?
  • Formatting
    • Black?
  • Lint
    • pylint?
    • flake8
  • Doc
    • Clean up the cloned doc's structure so it can stand alone
    • Push it to ... ReadTheDocs, I guess?
      • Can this be a part of the flit publish process too?
    • Check the docstrings in the module, and extend them if they're not already useful
    • Add type hints to the code
    • Add some badges in this README
      • GitHub CI
      • Coverage
      • PyPI
      • pepy.tech?
  • Consider adding rpcgen-like tool to compile XDR IDL into classes
    • IDL parser
      • Need to add support for struct and union
    • Code generator
  • Investigate the newer RFCs (1832/4506) and see if there's anything needs to be done to comply with them.
    • If so, and it can be done transparently, just do it.
    • Otherwise, if it needs some sort of mode switch, add that.
  • Extend the test suite with examples from modern NFS and elsewhere
  • Check for any reported bugs in the Python bug tracker
    • Mentioned in gh-83162, which seems to be dead, but the point is that the exception could be renamed to something more descriptive. I think ... that's a bit unnecessary, since xdrlib.Error is kinda fine?
    • Check Debian bug tracker, and maybe Arch?
  • Check for any CVEs
    • TBD
    • Can I subscribe for these?
  • Push out a 4.0.x fairly soon, with better tests, better doc, and otherwise unchanged functionality, maintaining functionality for those who need to use a single module with Python 3.8 through 3.13.

Contributing

Contributions are very welcome!

About

Python module for XDR (IETF RFC1014 / RFC1832 / RFC4506) encoding and decoding

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages