3 ms·
I agree for 99% of extensions their model is amazing. And I wouldn't expect me to come up with a better one any time soon. The problem is that I want to do mor
by mgrandl 3y ago
I agree for 99% of extensions their model is amazing. And I wouldn't expect me to come up with a better one any time soon.
The problem is that I want to do more in my launcher. Two examples:
- I wasn't happy with the official bitwarden extension, because going through the clipboard and copy/pasting individual items felt cumbersome. They also only supported one vault even though I asked about this years ago [0]! In raycast I wrote my own bitwarden extension that hooked into Hammerspoon and used the AX spoon to autofill credentials. That felt very hacky though so in my own launcher I am using the accessibility API directly through swift-rs.
- I wanted to build my own keyboard centric matrix chat client into raycast. I got pretty far, but in the end I was just too limited by the available components. Also I discovered that once your extensions heap reaches 100 MiB, it just gets killed. That basically made it impossible to just load the matrix-sdk including crypto.
In the end I just didn't want to keep investing time in some proprietary software that doesn't allow me to do what I want to do :)
[0] https://github.com/raycast/extensions/issues/1544 https://github.com/raycast/extensions/issues/1544
- Arathorn 3y agowhich sdk were you using? there are tricks to keep heap down.
- mgrandl 3y agothe matrix-js-sdk. I think the problem was that the crypto part is just loading a huge binary (WASM?) which instantly caused the extension to crash.
- Arathorn 3y agomm, right. crypto is indeed WASM - either libolm (which is only 150KB of WASM) or vodozemac (our new rust impl, which is 5.5MB of WASM unstripped). Neither use much heap though - probably only a few 100KB. The main heap management trick for matrix-js-sdk would be to turn on (experimental) sliding sync mode, which means that it only syncs the rooms it cares about - so O(1) with number of rooms, rather than O(N). However, i'm guessing you probably weren't testing with a large account?