
Research
/Security News
737 Chrome VPN Extensions Linked to Brand Impersonation and Browser Traffic Redirection
The campaign amassed more than 75,000 installs by targeting Russian-speaking users seeking access to blocked services.
@cspell/rpc
Advanced tools
A basic client / server RPC for sending the requests over a MessagePort.
This supports Node Worker Threads, Web Workers, or anything that can provide a MessagePortLike interface.
The client and server communicate by sending messages over the MessagePort.
export interface RPCMessage {
sig: 'RPC0';
/**
* A Unique identifier for the request/response.
* Ideally this is a randomUUID.
*/
id: RequestID;
/**
* The type of message being sent.
*/
type: 'request' | 'response' | 'cancel' | 'canceled' | 'ok' | 'ready';
}
export type RPCRequestType = 'request' | 'cancel' | 'ok' | 'ready';
export type RPCResponseType = 'response' | 'canceled' | 'ok' | 'ready';
There are two types of messages: Request and Response. The client sends requests and the server sends responses.
sequenceDiagram
participant C as Client
participant S as Server
participant W as Worker
C->>+S: Request <id>
S->>+W: Method
W->>-S: Result
S->>-C: Response <id>, Result
sequenceDiagram
participant C as Client
participant S as Server
participant W as Worker
C->>+S: Request <id>, ACK
S->>C: ACK <id>
S->>+W: Method
W->>-S: Result
S->>-C: Response <id>, Result
sequenceDiagram
participant C as Client
participant S as Server
participant W as Worker
C->>+S: Request <id>, ACK
S->>C: ACK <id>
S->>+W: Method
W->>-S: Error
S->>-C: Response <id>, Error
This request is used to check if the server is ok.
sequenceDiagram
Client->>Server: OK <id>?
Server->>Client: OK <id>, Code 200
A cancellation request is used to cancel or abort a request. The server accepts the request and acknowledges that it was received. It does not wait
sequenceDiagram
participant C as Client
participant S as Server
participant W as Worker
C->>+S: Request <id>
S->>+W: Method
C->>S: Cancel <id>
S->>-C: Canceled <id>
S--xW: Cancel
W--x-S: Canceled
sequenceDiagram
participant C as Client
participant S as Server
participant W as Worker
C->>+S: Request <id>
S->>+W: Method
C->>S: Cancel <id>, Wait
S--xW: Cancel
W-->>-S: Canceled
S->>-C: Canceled <id>
It can happen that the server needs to cancel requests. This can happen if the server is getting disposed and still has pending requests. It has a couple of ways to do this:
sequenceDiagram
participant C as Client
participant S as Server
participant W as Worker
C->>+S: Request <id>
S->>+W: Method
W--x-S: Canceled
S->>-C: Canceled <id>
An abort request is the same as a Cancel request, only the client will not wait on a response and the response will be ignored.
sequenceDiagram
participant C as Client
participant S as Server
C->>S: Request <id>
C-->>S: Cancel <id>
S--xC: Canceled <id>
FAQs
Type Safe RPC library.
The npm package @cspell/rpc receives a total of 534,891 weekly downloads. As such, @cspell/rpc popularity was classified as popular.
We found that @cspell/rpc demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
The campaign amassed more than 75,000 installs by targeting Russian-speaking users seeking access to blocked services.

Company News
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.

Security News
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.