`asn1-*` forked as `crypton-asn1-*`

I have forked asn1-* as crypton-asn1-* (for types, parse and encoding). Kazu Yamamoto has kindly agreed to be a co-maintainer. For people who have not seen my recent and similar posts, Kazu maintains crypton* (and other) packages after cryptonite* became unmaintained. The asn1-* packages are not cryptographic ones but the crypton-* prefix is intended to signal that they are part of a family of maintained equivalents.

The sole maintainer of the asn1-* packages is Vincent Hanquez who, for his reasons published elsewhere, does not wish to further develop his packages or introduce new maintainers.

crypton-asn1-types-0.3.4 is a carbon copy of asn1-types-0.3.4, and similarly for crypton-asn1-parse-0.9.5 and crypton-asn1-encoding-0.9.6. The next minor versions of crypton-asn1-* will then bring things up to date. My medium term plan is to seek to eliminate dependencies on the unmaintained basement package.

5 Likes

asn1-types depends on hourglass and is also maintained by Vincent. I wonder if it can be replaced by time.

1 Like

I have also been thinking about hourglasstime. I wanted to get a sense of what the consequent ripples might be, for packages downstream of asn1-types.

EDIT: Also hourglass describes itself as ‘performant’. I am wondering (a) is it implying that time is somehow lacking in performance; and (b) if it is, is that true?

It depends, time is String- and Integer-based, which in general is not great for performance. Whether it is a practical issue for casual clients is questionable in my opinion.

Another performance-oriented and yet maintained library for time is chronos, but I have not used it myself.

I believe parsing and formatting time is slower compared to chronos (see benchmark 1 and benchmark 2).

Yes, time represents date and time as an integer, i.e. Day and DiffTime. On a 64-bit machine, these are usually less than maxBound :: Int, so they use the IS constructor of Integer which is a wrapper of !Int#. I don’t think this will cause too much indirection.

BTW if it plans to support JSON Encoding Rules for ASN.1, I think using time would offer better interoperability and a smaller dependency footprint.

Hackage packages are not the only potential users of hourglass, but I started there. Non-deprecated packages that depend directly on it are those below. From this analysis, I think I need to seek the views of Kazu Yamamoto regarding the " tls universe ":

The tls universe
asn1-encoding
asn1-types
crypton-asn1-encoding
crypton-asn1-types
crypton-x509
crypton-x509-validation
dns
haskell-tor
tls

Other users of ASN.1
cryptostore
webauthn

Other
bureaucromancy
conditional-restriction-parser
core-data
core-program
dzen-dhall
fuzzy-dates
homura-stopwatch
ribosome
stack2cabal
tasklite-core

hourglass-related
hourglass-fuzzy-parsing
hourglass-orphans

Other Vincent Hanquez packages
git
hit
x509
x509-validation

1 Like