1.4 KiB
1.4 KiB
TypeScript Proto Socket
Status: planned
This package implements Proto Socket protocol version 0.1 for TypeScript.
Scope
- Runtime targets: Node.js TCP, Node.js WebSocket, browser native WebSocket.
- Browser entrypoint (
proto-socket):Communicator,BaseClient,BrowserWsClient,connectBrowserWs. Has nows,node:*, orBufferdependency. - Node entrypoint (
proto-socket/node): all of the above plusTcpClient/TcpServer,NodeWsClient/NodeWsServer,connectNodeWs/connectNodeWss.
Import
// browser
import { connectBrowserWs } from "proto-socket";
// node
import { connectNodeWs, NodeWsServer, TcpClient } from "proto-socket/node";
Runtime Dependencies
ws is declared as an optional peer dependency. Install it only when using the Node WebSocket entrypoint (NodeWsClient/NodeWsServer/connectNodeWs/connectNodeWss):
npm install ws
The browser entrypoint and Node TCP-only consumers do not need ws.
Proto Generation
Generated bindings live in src/packets/.
cd typescript
PATH="$PWD/node_modules/.bin:$PATH" protoc \
--proto_path ../proto \
--es_out src/packets \
--es_opt target=ts \
message_common.proto
After generation, run from the repository root:
tools/check_proto_sync.sh
Validation
cd typescript
npx tsc --noEmit
npx vitest run
cd go
go run ./crosstest/go_typescript.go