{"id":24553181,"url":"https://github.com/jwetzell/showbridge","last_synced_at":"2025-04-15T23:14:29.135Z","repository":{"id":185891971,"uuid":"674279698","full_name":"jwetzell/showbridge","owner":"jwetzell","description":"highly configurable protocol router","archived":false,"fork":false,"pushed_at":"2025-04-14T00:56:07.000Z","size":12198,"stargazers_count":17,"open_issues_count":42,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-15T23:14:22.180Z","etag":null,"topics":["bridge","cloud","companion","control","midi","mqtt","osc","osculator","protocol","show","tcp","theater","theatre","udp","websocket"],"latest_commit_sha":null,"homepage":"https://demo.showbridge.io","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jwetzell.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":["jwetzell"]}},"created_at":"2023-08-03T14:54:09.000Z","updated_at":"2025-04-09T10:26:15.000Z","dependencies_parsed_at":"2023-10-25T00:32:33.573Z","dependency_job_id":"0e285e10-d79c-4241-abbc-4ea0866ec588","html_url":"https://github.com/jwetzell/showbridge","commit_stats":{"total_commits":1063,"total_committers":3,"mean_commits":354.3333333333333,"dds":0.07714016933207901,"last_synced_commit":"2d63e84a96263cb89a56d73769992a6168002f0c"},"previous_names":["jwetzell/showbridge"],"tags_count":44,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwetzell%2Fshowbridge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwetzell%2Fshowbridge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwetzell%2Fshowbridge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwetzell%2Fshowbridge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jwetzell","download_url":"https://codeload.github.com/jwetzell/showbridge/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249167448,"owners_count":21223506,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bridge","cloud","companion","control","midi","mqtt","osc","osculator","protocol","show","tcp","theater","theatre","udp","websocket"],"created_at":"2025-01-23T01:34:48.528Z","updated_at":"2025-04-15T23:14:29.129Z","avatar_url":"https://github.com/jwetzell.png","language":"TypeScript","funding_links":["https://github.com/sponsors/jwetzell"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# showbridge\n\n![npm](https://img.shields.io/npm/v/%40showbridge/lib?label=lib)\n![npm](https://img.shields.io/npm/v/%40showbridge/cli?label=cli)\n![GitHub release (with filter)](https://img.shields.io/github/v/release/jwetzell/showbridge?label=launcher)\n![npm](https://img.shields.io/npm/v/%40showbridge/cloud?label=cloud)\n![npm](https://img.shields.io/npm/v/%40showbridge/webui?label=webui)\n![npm](https://img.shields.io/npm/v/%40showbridge/types?label=types)\n\n\n\nSimple protocol router _/s_\n\n[Run](#how-to-run) •\n[CLI Usage](#cli-usage) •\n[Config File](#config-file) •\n[Docs](#docs)\n\n\u003c/div\u003e\n\n### Supported Protocols\n- HTTP \u0026 WebSocket\n- OSC (via UDP and TCP)\n- UDP\n- TCP\n- MQTT\n- MIDI\n\n### How to run\n- Launcher\n  - download/install [launcher](https://github.com/jwetzell/showbridge/releases) this is the easiest method to get up and running and includes the web interface and logging\n  - run showbridge!\n- NPM\n  - create a config file (see below)\n  - optionally install globally: `npm install -g @showbridge/cli`\n  - run\n    - if installed globally: `showbridge -c config.json`\n    - via npx: `npx @showbridge/cli@latest -c config.json`\n  - this method still has the web interface available via HTTP\n  - use the `-h` flag to see other available flags\n- Source\n  - clone repo\n  - install dependencies: `npm install \u0026\u0026 npm run install:all`\n  - run: `cd cli \u0026\u0026 npm run start -- -c config.json`\n    - see [CLI Usage](#cli-usage) for more flags\n    - if no config file is specified then a [default config](sample/config/default.json) will be used\n  - to run the launcher\n    - `cd launcher`\n    - `npm run start`\n   \n## CLI Usage\n```\nUsage: @showbridge/cli [options]\n\nSimple protocol router /s\n\nOptions:\n  -V, --version                            output the version number\n  -c, --config \u003cpath\u003e                      location of config file\n  -v, --vars \u003cpath\u003e                        location of file containing vars\n  -w, --webui \u003cpath\u003e                       location of webui html to serve\n  --disable-action \u003caction-type...\u003e        action type(s) to disable\n  --disable-protocol \u003cprotocol-type...\u003e    protocol type(s) to disable\n  --disable-trigger \u003ctrigger-type...\u003e      trigger type(s) to disable\n  --disable-transform \u003ctransform-type...\u003e  transform type(s) to disable\n  -l, --log-level \u003clevel\u003e                  log level (choices: \"trace\", \"debug\", \"info\", \"warn\", \"error\", \"fatal\", default: \"info\")\n  -h, --help                               display help for command\n\n```\n\n## Config File\nThe showbridge router's config is entirely controlled by a JSON config file. This file can be made by hand or edited via the web interface included with the launcher. The router WILL NOT start up with an invalid config file. I do provide some starter/example configs to look at to get a general idea of what one entails. \n\nResources\n- the [JSON Schema](https://docs.showbridge.io/schema/config) used to validate the config file\n- good idea to start with [default.json](sample/config/default.json)\n- [random examples](sample/config/)\n- the [demo](https://demo.showbridge.io) site can be used to import/edit/create configs that can be downloaded\n    \n\n## Docs\nFor more information about showbridge and its inner workings check out the [documention](https://docs.showbridge.io)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjwetzell%2Fshowbridge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjwetzell%2Fshowbridge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjwetzell%2Fshowbridge/lists"}