GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - GetStream/protocol

BranchesTags
Open more actions menu

Latest commit

 

History

1,637 Commits
1,637 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
docs
docs
 
 
jsonschemas
jsonschemas
 
 
openapi
openapi
 
 
protobuf/video/sfu
protobuf/video/sfu
 
 
tools
tools
 
 
.gitignore
.gitignore
 
 
.prettierrc
.prettierrc
 
 
.protolint.yaml
.protolint.yaml
 
 
Dockerfile
Dockerfile
 
 
LICENSE
LICENSE
 
 
Makefile
Makefile
 
 
README.md
README.md
 
 
docker_entrypoint.sh
docker_entrypoint.sh
 
 
generate.go
generate.go
 
 
generate.sh
generate.sh
 
 
go.mod
go.mod
 
 
go.sum
go.sum
 
 
install.sh
install.sh
 
 
versions.sh
versions.sh
 
 

Repository files navigation

Protocol

This repository contains manifests that describe Stream public APIs, documentation and SDK clients can be generated using this manifests.

OpenAPI

Stream REST API is described with OpenAPI specs, each product has its own openapi spec file.

At the moment client generation from OpenAPI specs is done inside the specific SDK repositories, generation scripts are not yet part of this repository and should be done using our dockerized fork of openapi-generator.

docker run --rm -v "${PWD}:/local" ghcr.io/getstream/openapi-generator:master generate \
   -i https://raw.githubusercontent.com/GetStream/protocol/main/openapi/video-openapi.yaml \
   -g typescript-fetch \
   --additional-properties=supportsES6=true \
   --additional-properties=modelPropertyNaming=original \
   --additional-properties=enumPropertyNaming=original \
   --additional-properties=withoutRuntimeChecks=true \
   -o /local/src/gen/openapi-temp

Protobuf and Twirp

Stream video servers use Twirp to expose an HTTP RPC layer. Websocket events sent by the video server are encoded using protobuf.

Dependencies

Before generating, you have to install necessary dependencies using ./install.sh script.

All dependencies are installed into .protoc directory. Some of them may be skipped if there's a missing dependency. Swift plugins are not installed if there's no swift executable in the PATH and so on.

MacOS

You need to have realpath. It can be installed via:

brew install coreutils

If you have an issue with realpath in generation, try:

REALPATH=grealpath ./generate.sh

Go Code Generation

To generate Go and put artifacts into this project, just run ./generate.sh without arguments or run go generate. You can also change the output directory, for example, to put generated code to the public Go SDK repo, but this will likely require import prefix change. To change the import prefix, run ./generate.sh go <output_path> <import_prefix>. Default import prefix is github.com/GetStream/protocol/protobuf.

Client Code Generation

We support generation for some client languages here:

  • TypeScript
  • Dart
  • Swift

For detailed option settings, check out generate.sh

To generate code for your language, do this:

  1. Install dependencies: ./install.sh
  2. Generate: ./generate.sh <language> <output_dir>
    • language: language to generate code for can be ts, dart or swift
    • output_dir is a directory where you want to put generated code in

Generate sdk with docker

For TS

docker run --user "$(id -u):$(id -g)" -v $(pwd):/local ghcr.io/getstream/protobuf-generate ts /local/packages/client/src/gen

# or
docker run --platform=linux/amd64 --user "$(id -u):$(id -g)" -v $(pwd):/local ghcr.io/getstream/protobuf-generate ts /local/packages/client/src/gen

For Dart

docker run --user "$(id -u):$(id -g)" -v $(pwd):/local ghcr.io/getstream/protobuf-generate dart /local/dart-sdk

# or
docker run --platform=linux/amd64 --user "$(id -u):$(id -g)" -v $(pwd):/local ghcr.io/getstream/protobuf-generate dart /local/dart-sdk

Where /local is folder mounted to container from PWD. In this way you will find the dart-sdk folder in your current directory.

Generate for a specific branch

docker run --user "$(id -u):$(id -g)" -v $(pwd):/local ghcr.io/getstream/protobuf-generate dart /local/dart-sdk --branch=my-branch

# or
docker run --platform=linux/amd64 --user "$(id -u):$(id -g)" -v $(pwd):/local ghcr.io/getstream/protobuf-generate dart /local/dart-sdk --branch=my-branch

Video API and server-side SDK documentation

Is hosted here: https://github.com/GetStream/docs-content

About

getstream.github.io/protocol/

Resources

Readme
License
Activity
Custom properties

Stars

10 stars

Watchers

22 watching

Forks

2 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.