tontsa28 / licheszter

Lichess API wrapper in Rust
Apache License 2.0
4 stars 0 forks source link

why #29

Open JeromeSchmied opened 1 month ago

JeromeSchmied commented 1 month ago

why a new library, when a Rust lichess-api with kinda same goals exists?

tontsa28 commented 4 weeks ago

That's honestly a fair question. First, I will have to mention that if you take a look at the commit history of this project and compare it to lichess-api, you can see that I started this project about 6 months prior to lichess-api coming to existence. Back in 2022 this seemed like a good project to take on since a Lichess API wrapper had not been fully implemented (there had been some attempts but they were very much incomplete and unmaintained). I wasn't even aware of this "competitor" until about 2 months ago and by that time I was back to developing this at full speed after a long period of inactivity. I decided that I want to finish what I started and see how these two libraries will shape out eventually. The question "why" is a bit hard to answer because of all this, especially since licheszter and lichess-api mostly implement the same features at the moment (or lichess-api already supporting features that licheszter does not support yet). However, it seems that in terms of developer experience these two are more or less different. licheszter is also slighty more lightweight, using about 100 total dependencies compared to lichess-apis 140-ish. Keeping this library as lightweight as possible will stay to be a big focus of mine.

JeromeSchmied commented 4 weeks ago

okay, I completely understand. although it might be slightly more beneficial for the community, if the two lichess api wrappers united and there would only be one, which does implement everything.

It's just a vision, which is probably pretty hard to make actually happen, as the two apis differ in many implementation details, and one should give their dream up and kinda lose loads of work.

tontsa28 commented 4 weeks ago

It would indeed be better if these two projects just merged into one, but due to very different designs in the DX, licheszterand lichess-api are totally incompatible with each other. You are indeed correct in that uniting these two would be hard: it would essentially require a complete code overhaul from either this project or lichess-api and that would not only take a lot of time, but would also cause the project to kind of lose its identity. As of yet, I don't think such a process can take place, but as they say: never say never.

But for now, I will continue working on licheszter since I haven't talked to the author of lichess-api (actually I'm not even sure if he is aware of this project at all). While lichess-api seems to be a much more popular option currently, licheszter has also passed 1000 downloads recently on crates.io, which suggests that some people might be actually using it and because of that, I need and want to keep maintaining this on my spare time.

JeromeSchmied commented 3 weeks ago

nice

shall I close this issue now?

tontsa28 commented 3 weeks ago

Yes, you can close it if you have no more questions 👍

JeromeSchmied commented 3 weeks ago

oh, wait! maybe if you could provide a blocking version (maybe crate feature), with a very minimal set of dependencies (maybe ureq instead reqwest, no tokio, no futures, ... I'd be very happy!

tontsa28 commented 3 weeks ago

Oh yeah, I have thought about implementing it as a separate crate feature. It will come eventually but it is really a super massive feature to implement so it will take quite some time. But if you want to help with the implementation, you're more than welcome to do so ;)