+.. _features:
+
Features
========
automatically set required tags)
* Descriptive errors, like ``pyderasn.DecodeError: UTCTime
(tbsCertificate:validity:notAfter:utcTime) (at 328) invalid UTCTime format``
-* ``__slots__``, ``copy.copy()``, ``pickle`` friendliness
-* Could be significantly faster and have lower memory usage
- For example parsing of CACert.org's CRL (8.48 MiB) on FreeBSD 12.0
- amd64, Intel Core i5-6200U 2.3 GHz machine, Python 3.5.5/2.7.15:
-
- .. list-table::
- :widths: 15 45 20 20
- :header-rows: 1
-
- * - Library
- - Command
- - Time, sec (Py3/Py2)
- - Memory used, MiB (Py3/Py2)
- * - pyasn1 0.4.5
- - ``der_decode(data, asn1Spec=rfc5280.CertificateList())``
- - 1257 / 1302
- - 1327 / 2093
- * - asn1crypto 0.24.0
- - ``asn1crypto.crl.CertificateList.load(data).native``
- - 29.3 / 43.8
- - 983 / 1677
- * - pyderasn 4.9
- - ``CertificateList().decode(data)`` (CertificateList is
- converted ``pyasn1`` scheme definition)
- - 27.6 / 32.5
- - 498 / 488
+* ``__slots__``, ``copy.copy()`` friendliness
+* Workability with ``pickle``
+* `Cython <https://cython.org/>`__ compatibility
+* Could be significantly :ref:`faster <performance>` and have lower memory usage
* :ref:`Pretty printer <pprinting>` and
:ref:`command-line decoder <cmdline>`, that could
conveniently replace utilities like either ``dumpasn1`` or
An example of pretty printed X.509 certificate with automatically
parsed DEFINED BY fields.
-
-There are drawbacks:
-
-* No old Python versions support
-* See :ref:`limitations <limitations>`