Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

So let's check the answer(against Raycast Architecture) #29

Open
Yukaii opened this issue May 31, 2023 · 0 comments
Open

So let's check the answer(against Raycast Architecture) #29

Yukaii opened this issue May 31, 2023 · 0 comments

Comments

@Yukaii
Copy link
Collaborator

Yukaii commented May 31, 2023

Read Raycast's awesome writeup first.

What I was right about Raycast

  • The observation around Raycast's open source strategy is that they manually review and prevent some security issues, while still sharing solutions. (I have a blog post that discusses Raycast in a "developer" way. The post is in Traditional Chinese)
  • Raycast uses React Reconciler and JSON representation for components, which is similar to the approach taken in blast.
  • Raycast uses a prebuilt Go binary with esbuild included to build the Raycast CLI, a similar approach is taken in blast-cli.

Differences (where blast could improve)

  • Blast could improve by adding worker thread isolation for running extensions.
  • Raycast currently uses file descriptors and JSON-RPC for IPC, which seems to not work on Windows.
  • Raycast uses serial queues and buffered streams to ensure that messages arrive and leave in order.
  • Raycast uses JSON patch to incrementally update the component tree.
@Yukaii Yukaii changed the title So let's check the answer So let's check the answer(against Raycast Architecture) Jun 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant