haskell-servant / servant

Servat is a Haskell DSL for describing, serving, querying, mocking, documenting web applications and more!
https://docs.servant.dev/
1.82k stars 412 forks source link

servant-auth doesn't build with new js backend #1764

Closed tysonzero closed 3 months ago

tysonzero commented 4 months ago

This is due to the jose -> crypton/memory -> basement dependency chain with basement being the package that actually fails due to its usage of GHC.IntWord64.

I bring up the issue here though because I think it may be rather hard to get that chain to build with the js backend in the near future, so I was curious if there was a possibility of making the dependency chain a little lighter for the shared servant-auth library.

A heavier dependency chain on servant-auth-server is much less of a problem due to building a backend server with the js library being presumably a lot less desirable.

ysangkok commented 3 months ago

Given that jose is still maintained, and offers a fine API, wouldn't it make more sense to report the issue there? The community should migrate off of Crypton since nobody wants to maintain the underlying libraries.

tysonzero commented 3 months ago

I filed an issue there, but that may be harder than removing the dependency on it, since it doesn't seem like servant-auth itself needs to do much cryptography, since it's just the api layer, unlike servant-auth-server.

ysangkok commented 3 months ago

Thank you, I will close this issue and I think we can't be keeping track of all the dependencies that aren't compatible with the JavaScript backend. There are probably more, since many Haskell libraries are backed by C code.