* Extensive and comprehensive
`hypothesis <https://hypothesis.readthedocs.io/en/master/>`__
driven tests coverage. It also has been fuzzed with
* Extensive and comprehensive
`hypothesis <https://hypothesis.readthedocs.io/en/master/>`__
driven tests coverage. It also has been fuzzed with
* Some kind of strong typing: SEQUENCEs require the exact **type** of
settable values, even when they are inherited (assigning ``Integer``
to the field with the type ``CMSVersion(Integer)`` is not allowed)
* Some kind of strong typing: SEQUENCEs require the exact **type** of
settable values, even when they are inherited (assigning ``Integer``
to the field with the type ``CMSVersion(Integer)`` is not allowed)
automatically set required tags)
* Descriptive errors, like ``pyderasn.DecodeError: UTCTime
(tbsCertificate:validity:notAfter:utcTime) (at 328) invalid UTCTime format``
automatically set required tags)
* Descriptive errors, like ``pyderasn.DecodeError: UTCTime
(tbsCertificate:validity:notAfter:utcTime) (at 328) invalid UTCTime format``
-* ``__slots__`` friendliness
-* Could be significantly faster and have lower memory usage.
+* ``__slots__``, ``copy.copy()``, ``pickle``, `Cython <https://cython.org/>`__
+ 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:
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: