web-core

Logo

Web Core SDK

Table of Contents

About The Project

This SDK provides low-level APIs for building live video, audio & livestream experiences in web apps using Dyte. Clients can integrate this SDK in their apps and build their own, fully custom experiences on top of it, as per their requirement.

This project is written in vanilla Typescript so that it is compatible with all popular Javascript/Typescript frameworks. There is a react wrapper which provides helper methods for using web-core with React. The build system uses vite, which internally uses esbuild.

Built With

Getting Started

Prerequisites

Installation

  1. Clone the git repository
    git clone git@github.com:dyte-in/web-core.git
    
  2. Install the dependencies

    Note: Since some dependencies may be on a private npm registry on GitHub, there is a .npmrc file which has the configuration for installing these dependencies. However, you need to set the NPM_TOKEN for it to work correct. The NPM_TOKEN can be set to a GitHub Personal Access Token which has read:packages and read:repository permissions.

    npm install
    
  3. Run the development build, with hot reload functionality
    npm run dev
    
  4. Now, you can open http://localhost:5173 which runs the index.html file. You can access the meeting object in the browser console on this web page.

Samples

web-core is used extensively in ui-kit, which can serve as a great example on how to use the APIs exposed by this library. You can check out ui-kit here.

Structure

web-core is build with Typescript (4.5.0+), using an object-oriented approach (therefore, there should be minimal (if any) stand-alone functions outside of a class). It is designed to be used as a library, and is not intended to be used as a standalone application.

For generating the SDK and demo, we use vite. The demo application is located in index.html. The following npm commands can be used for local development and generating production builds:

This repository has been set up with ESLint for linting, and semantic-release for versioning and releases.

The repository has been broken down into the following modules (inside the src/ folder):