purescript-payload icon indicating copy to clipboard operation
purescript-payload copied to clipboard

How experimental the API really is?

Open paluh opened this issue 4 years ago • 3 comments

Hi,

First things first - this library seems awesome after a closer look. I really love the API around records with nested routes and ability to generate client. Thanks a lot for building it!

I want to try your library in our project but I'm a bit scared by the claim from the README that it is still experimental so I want to ask if this is really the case.

  • Should I expect really huge changes regarding the API? Do you have an approximation of what is possibly coming?

  • Have you used this lib in production? Do you know anyone who is using it too?

  • It seems (just by reading module names) that you are building efficient Trie structure for routing. Am I right? Have you done any benchmarking etc.?

P.S. I had my own attempt somewhat failed attempt of building this kind of router in the past: https://github.com/paluh/purescript-boomboom so I'm even more impressed how far you have pushed this API!

paluh avatar Aug 18 '20 17:08 paluh

Hi! Thank you for your kind words. So here's where my head is at regarding this project at the moment. The main bigger design-affecting feature I'm hoping to get in there soon is for auto-generating API documentation in an extendable way. This is mostly fleshed out and "might" have some effect on the API, though I don't expect dramatic changes. So far all that has changed I believe is to use curly braces instead of triangle braces to match the more common convention (e.g. "/{id}" instead of "/"). After that I'm hoping to take some time to do proper benchmarking, round out various nitty gritty issues, and ideally declare a 1.0 at some point. I have other ideas on the horizon, but that would already fulfill the three pillars of servers, clients, and documentation (plus reasonable performance) that I have been targeting.

The project is not to my knowledge used in production, outside of one little project of mine for a small client (and various toy projects).

As mentioned I would like to do benchmarking slightly down the line to see what the performance is, but at least design-wise I don't believe there are significant blockers to making it performant (and some decisions have been made partly with this in mind). But the benchmarks will tell, of course.

hoodunit avatar Aug 19 '20 05:08 hoodunit

Thanks for the quick response.

@hoodunit Don't you think that the above indicates that statement from the README could be transformed into a "status" section where we can put list of these upcoming features and plans? Maybe it is just time to encourage early adopters like me to do some battlefield tests ;-)

P.S. By the way @vladciobanu has done a short review/exploration of servant like solutions (it starts around 00:50) for PS recently and was somewhat afraid that this lib is somewhat stale... ;-)

paluh avatar Aug 19 '20 07:08 paluh

You may be right. I'll have to think about this a bit. But I'm picking this project up again here so there should be some activity. Thanks for the pointer to the video review, the live video walk-through is a really nice way to get some feedback.

hoodunit avatar Aug 20 '20 13:08 hoodunit