A web-based streaming service with improved privacy, performance, and simplicity.

Related tags

Command-line Majiix
Overview

Majiix

Majiix is a web-based open-source streaming service. The backend that handles the core streaming logic is written in Rust and makes use of cutting-edge tech like the WebTransport and the WebCodecs APIs.

Development

We use a yarn monorepo, leveraging the dependency management and package.json scripts across languages.

Script name Expected functionality Runs in CI
build Compile for release
check Typecheck code yes
dev Run app in dev mode
fmt Format the source
fmt:check Check formatting yes
lint Runs linting
lint:fix Fix fixable lints yes
test Ensure tests pass yes

Setup Yarn

Installation

Expecting you have Node.js LTS already, install yarn:

corepack enable
corepack prepare yarn@stable --activate

Shell Aliases

Then, we recommend installing aliases (put this in your shell's runtime config file, e.g. .zshrc or .bashrc):

alias yrb='yarn workspaces foreach --verbose --parallel --interlaced --recursive --topological-dev run build'
alias yrc='yarn workspaces foreach --verbose --parallel --interlaced --recursive run check'
alias yrd='yarn workspaces foreach --verbose --parallel --interlaced --recursive run dev'
alias yrf='yarn workspaces foreach --verbose --parallel --interlaced --recursive run fmt'
alias yrfc='yarn workspaces foreach --verbose --parallel --interlaced --recursive run fmt:check'
alias yrl='yarn workspaces foreach --verbose --parallel --interlaced --recursive run lint'
alias yrlf='yarn workspaces foreach --verbose --parallel --interlaced --recursive run lint:fix'
alias yrt='yarn workspaces foreach --verbose --parallel --interlaced --recursive run test'

VS Code

VS Code should simply prompt you to use the bundled TypeScript version when you open the root folder, but in case it doesn't, please see the following link

Follow https://yarnpkg.com/getting-started/editor-sdks#vscode

You might also like...
zk-rollup in rust for the advanced security and privacy course

Efficient zk-Rollup Implementation in Rust This repository contains a simple, single transaction, zero-knowledge rollup made in Rust. We have combined

Rust-advent - Learning Rust by solving advent of code challenges (Streaming live on Twitch every Monday)
Rust-advent - Learning Rust by solving advent of code challenges (Streaming live on Twitch every Monday)

Rust advent 🦀 🐚 Learning Rust by implementing solutions for Advent of Code problems. 🎥 HEY, we are live-streaming our attempts to solve the exercis

Experimental implementation of the Privacy Preserving Measurement (PPM) specification.

janus Janus is an experimental implementation of the Privacy Preserving Measurement (PPM) specification. It is currently in active development. Runnin

Conference Monitoring Project based on Image Recognition that uses Rust Language and AWS Rekognition service to get the level of image similarity.

Conference Monitoring System based on Image Recognition in Rust This is a Conference Monitoring Project based on Image Recognition that uses Rust Lang

High-performance, low-level framework for composing flexible web integrations

High-performance, low-level framework for composing flexible web integrations. Used mainly as a dependency of `barter-rs` project

Rust in Anger: high-performance web applications

Rust in Anger: Book demo This is the code repository that accompanies the Rust in Anger blog post. The following folders each come with their own buil

Infino - Fast and scalable service to store time series and logs - written in Rust

Infino 〽️ 🪵 — 🔍 📊 — ⚖️ 💰 Ingest Metrics and Logs — Query and Insights — Scale and Save $$ Infino is an observability platform for storing metrics

Web-based tool that allows browsing and comparing symbol and type information of Microsoft Windows binaries across different versions of the OS.
Web-based tool that allows browsing and comparing symbol and type information of Microsoft Windows binaries across different versions of the OS.

WinDiff About WinDiff is an open-source web-based tool that allows browsing and comparing symbol and type information of Microsoft Windows binaries ac

By mirroring traffic to and from your machine, mirrord surrounds your local service with a mirror image of its cloud environment.
By mirroring traffic to and from your machine, mirrord surrounds your local service with a mirror image of its cloud environment.

mirrord lets you easily mirror traffic from your Kubernetes cluster to your development environment. It comes as both Visual Studio Code extension and

Comments
  • Backend

    Backend

    • adds yarn 3.6.4 = yarn "berry", and replaces use of npm's package-lock.json with yarn.lock
    • adds zipfs yarn sdk integration for vscode, so typescript and prettier reads via yarn's zipfile cache
    • avoids yarn zero installs for now (= we're not committing our dependency cache)
    • adds root README explaining the yarn setup
    • adds github workflow to verify that everything passes typechecking, formatting, linting and tests, yay 🎉 (if we make a github org and move this repo there, e.g. "majiix", and we make us both admins, we can both collab on repo settings)
    • ran cargo fmt on all backend code
    • ran prettier on all frontend code
    • consolidates gitignore in root
    • adds backend .env handling, with configurable PORT.
    • uses pinned versions in frontend package.json for better control
    • extends frontend tsconfig.json with extensive type safety
    • consolidates naming everywhere from "maajix" to "majiix" (we could go the other way, I just used the most common - although we should perhaps rename the repo in that case)
    opened by majg0 2
  • add hls playback of hardcoded file

    add hls playback of hardcoded file

    (note: all script snippets below start from root of repo)

    1. set up ffmpeg
    cd ffmpeg
    ./build.sh
    sudo ./install.sh
    
    1. download free creative commons public domain media
    cd backend/media
    ./download.sh
    
    1. run server
    cd backend
    yarn dev # (or `cargo run`)
    
    1. let server ingest downloaded media, transcoding it to hls - let's pretend this is a user stream instead
    curl localhost:8080/ingest
    
    1. serve frontend
    cd frontend
    yarn dev
    
    1. click the new button, and watch the network tab making several requests over time to fetch the relevant chunks. You can also right click and select "Show All Controls" (Chrome) / "Show Controls" (Firefox + Safari) and try scrubbing to see the relevant chunks adaptively being streamed.
    opened by majg0 0
Owner
Majgix
Majgix
Improved Notion data entry, at the command line

notion-entry NOTE: This project is a work in progress and has a pile of FIXMEs This program lets you input data into Notion from the command line. It

Jade Lovelace 1 Jan 16, 2022
A community improved version of the polycubes project!

Polycubes This code is associated with the Computerphile video on generating polycubes. The original repository may be found here. That version is unc

Michael Pound 30 Jul 26, 2023
A high-performance WebSocket integration library for streaming public market data. Used as a key dependency of the `barter-rs` project.

Barter-Data A high-performance WebSocket integration library for streaming public market data from leading cryptocurrency exchanges - batteries includ

Barter 23 Feb 3, 2023
YAML(ish) - Terminal UI framework based on templates focused on simplicity

A YAML(ish) based terminal GUI framework for- and by Rust, focussed on making it quick and easy to create a functional UI for an app or game. Based on Crossterm and inspired by Kivy.

null 27 Dec 18, 2022
Ember is a minimalistic Rust library for creating 2D graphics, games, and interactive visualizations with ease and simplicity.

Ember Ember is a simple and fun 2D rendering library for Rust, allowing you to quickly create graphics and interactive applications with ease. It uses

null 8 May 4, 2023
A high level DSL for Simplicity. This is a work in progress and is not yet ready for production use

A high level DSL for Simplicity. This is a work in progress and is not yet ready for production use. The language is designed to be simple and easy to use. It is inspired by rust syntax and is statically typed. The syntax will be extended in the future to support more features.

null 13 Oct 28, 2023
Rust API Server: A versatile template for building RESTful interfaces, designed for simplicity in setup and configuration using the Rust programming language.

RUST API SERVER Introduction Welcome to the Rust API Server! This server provides a simple REST interface for your applications. This README will guid

Harry Nguyen 3 Feb 25, 2024
RustGPT is a ChatGPT UI built with Rust + HTMX: the power of Rust coupled with the simplicity of HTMX 💚

RustGPT ??✨ RustGPT.Blog.Post.mp4 Welcome to the RustGPT repository! Here, you'll find a web ChatGPT clone entirely crafted using Rust and HTMX, where

Bitswired 529 Dec 4, 2023
A high-performance web-based geospatial visualization tool with an emphasis LEO satellites and lunar missions.

A high-performance web-based geospatial visualization tool with an emphasis LEO satellites and lunar missions. Written in Rust to target WebGPU, with WebGL2 backwards compatibility.

Shane B. 5 Dec 20, 2023
An open source, programmed in rust, privacy focused tool for reading programming resources (like stackoverflow) fast, efficient and asynchronous from the terminal.

Falion An open source, programmed in rust, privacy focused tool for reading programming resources (like StackOverFlow) fast, efficient and asynchronou

Obscurely 17 Dec 20, 2022