{"id":48829,"library":"omega-edit","title":"OmegaEdit gRPC Client TypeScript Types","description":"OmegaEdit is an open-source library for building editors that can handle massive files and multiple viewports. The TypeScript client package (v0.9.58) provides gRPC client types and interfaces for interacting with the OmegaEdit server, generated from protobuf definitions. It supports Node.js and browser environments, with ESM and CJS builds. Key differentiators: designed for extremely large file editing with minimal memory overhead, uses a client-server architecture via gRPC, and provides type-safe TypeScript bindings. Alternates include Monaco Editor or CodeMirror but lack the large-file focus. Release cadence is irregular; latest stable version is 0.9.58.","status":"active","version":"0.9.58","language":"javascript","source_language":"en","source_url":"https://github.com/ctc-oss/omega-edit","tags":["javascript"],"install":[{"cmd":"npm install omega-edit","lang":"bash","label":"npm"},{"cmd":"yarn add omega-edit","lang":"bash","label":"yarn"},{"cmd":"pnpm add omega-edit","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"gRPC client runtime required for communication with OmegaEdit server","package":"@grpc/grpc-js","optional":false},{"reason":"Protobuf runtime for serialization/deserialization","package":"google-protobuf","optional":false}],"imports":[{"note":"Package is ESM-first; default export not available.","wrong":"const Session = require('omega-edit').Session","symbol":"Session","correct":"import { Session } from 'omega-edit'"},{"note":"createSession is a named export, not a default export.","wrong":"import createSession from 'omega-edit'","symbol":"createSession","correct":"import { createSession } from 'omega-edit'"},{"note":"The gRPC client class is named OmegaEditClient, not Client.","wrong":"import { Client } from 'omega-edit'","symbol":"OmegaEditClient","correct":"import { OmegaEditClient } from 'omega-edit'"}],"quickstart":{"code":"import { createSession, OmegaEditClient } from 'omega-edit';\nimport { credentials } from '@grpc/grpc-js';\n\nconst client = new OmegaEditClient('localhost:50051', credentials.createInsecure());\n\nconst session = await createSession(client, { filePath: '/path/to/file.txt' });\n\nconsole.log('Session ID:', session.sessionId);\n\nclient.close();","lang":"typescript","description":"Creates a gRPC client, establishes a session with a file, and prints the session ID."},"warnings":[{"fix":"Ensure you install the correct gRPC transport package: for Node.js use @grpc/grpc-js, for browser use @improbable-eng/grpc-web.","message":"Version 0.9.x uses gRPC web for browser contexts; Node.js requires @grpc/grpc-js. Mixing transports causes runtime errors.","severity":"gotcha","affected_versions":">=0.9.0"},{"fix":"Use the provided serialization methods if needed, or keep the session reference alive.","message":"The Session object is not directly serializable; cloning via JSON.stringify/parse loses gRPC metadata.","severity":"gotcha","affected_versions":">=0.9.0"},{"fix":"Pass a File object with path property: createSession(client, { file: { path: '/path/to/file.txt' } }).","message":"createSession with filePath parameter is deprecated; use createSession with a File object instead.","severity":"deprecated","affected_versions":">=0.9.50"}],"env_vars":null,"search_vec":"'0.9.58':104 'altern':83 'architectur':73 'bind':82 'browser':49 'build':14,55 'cadenc':97 'cjs':54 'client':3,26,31,71 'client-serv':70 'codemirror':88 'definit':44 'design':58 'differenti':57 'edit':63 'editor':15,86 'environ':50 'esm':52 'extrem':60 'file':20,62,94 'focus':95 'generat':41 'grpc':2,30,75 'handl':18 'includ':84 'interact':36 'interfac':34 'irregular':99 'javascript':105 'key':56 'lack':90 'larg':61,93 'large-fil':92 'latest':100 'librari':12 'massiv':19 'memori':66 'minim':65 'monaco':85 'multipl':22 'node.js':47 'omegaedit':1,6,39 'open':10 'open-sourc':9 'overhead':67 'packag':27 'protobuf':43 'provid':29,77 'releas':96 'safe':80 'server':40,72 'sourc':11 'stabl':101 'support':46 'type':5,32,79 'type-saf':78 'typescript':4,25,81 'use':68 'v0.9.58':28 'version':102 'via':74 'viewport':23","created_at":"2026-06-07T16:58:41.418542+00:00","updated_at":"2026-06-07T16:58:41.418542+00:00","problems":[{"fix":"Ensure the OmegaEdit server is the correct version and running the compiled proto definitions that match this client version.","cause":"gRPC method not implemented on the server side or wrong service definition.","error":"Error: 12 UNIMPLEMENTED: method not found"},{"fix":"Use the correct createSession signature: createSession(client, { file: { path: '/path/to/file.txt' } }).","cause":"File object not properly constructed; path property is missing.","error":"TypeError: Cannot read properties of undefined (reading 'path')"},{"fix":"Run npm install omega-edit@0.9.58. Ensure the package is in your dependencies.","cause":"Package not installed or not in node_modules.","error":"Module not found: Error: Can't resolve 'omega-edit'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/ctc-oss/omega-edit","github":"https://github.com/ctc-oss/omega-edit","docs":null,"changelog":null,"pypi":null,"npm":"omega-edit","openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops","storage"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-07","next_check":"2026-09-05","install_tag":null}}