Yesterday, I was finally able to compile Amethyst after a month. We had a massive refactoring/clean up of our Quartz library for Nostr to get it closer having fully separate caches for each NIP. It changed the code of all of the 75 NIPs we currently support. We are still not there, but now we can finally start working on it and the overall structure might not change as much.

Side effects:

- Relay hints produced by Amethyst will now be much better (which is not saying a lot... we were terrible)

- Tag definitions are now much better. There is still some old code to migrate, but now each NIP re-defines the tags the lib users are encouraged to use.

- Code quality is now vastly superior than before. The Decoupling is at all time highs. We might be able to even split Quartz into a few use-case-based repositories in the future.

More to come!

Reply to this note

Please Login to reply.

Discussion

Is amethyst not caching anything right now?

It is, but it is all in one cache. That's why it crashes after a while. We lose the information of which event is actually needed. So, by breaking it into many smaller cache systems, we can better manage the use of memory in the app.

I must have used amethyst since the day it came out. It's impressive how you managed to modernize and cleanup and ever growing code base since then.

It must have took a lot of grit, persistence and will. There's always the temptation of starting something new from scratch

hell yes

Exciting stuff 🔥

SO FAR AMETHYST IS THE BEST CLIENT FOR US

THANK YOU FOR YOUR HARD WORK

ENJOY THE NOISE

Code quality is a myth