GithubHelp home page GithubHelp logo

matallui / artico Goto Github PK

View Code? Open in Web Editor NEW
20.0 2.0 2.0 8.14 MB

Artico - WebRTC made simple

Home Page: https://artico.dev

License: MIT License

JavaScript 3.26% TypeScript 95.18% CSS 1.56%
communication p2p webrtc rtc peer signaling

artico's Introduction

Logo for Artico

Artico

Artico is a flexible set of libraries that help you create your own WebRTC-based solutions. It uses a RTCPeerConnection abstraction similar to simple-peer, in order to maintain each individual peer-to-peer connection, while providing integrated signaling (via Socket.io), all via simple APIs.

Motivation

WebRTC as a technology has grown significantly in the past few years, making it more and more appealing. However, WebRTC APIs are not always straightforward and easy to use. In addition, WebRTC specifications don't define a signaling protocol or a discovery mechanism.

Multiple projects, like PeerJS and simple-peer, attempt to abstract some of the WebRTC complexities away from the user, facilitating the use of the technology. Even though these are all great projects, they usually fall short on some needed features (i.e., simple-peer doesn't provide signaling, PeerJS provides signaling but misses renegotiation capabilities) or are no longer actively maintained.

Artico aims at being a flexible, yet powerful, set of abstraction tools that should accommodate most WebRTC project needs.

About

Artico provides three core packages:

You can also find the implementation of three of our apps:

The demo apps are used to support the development of the Artico ecosystem, whilst demonstrating how to use the library packages.

  • provide WebRTC API abstraction
  • facilitate individual peer to peer connections
  • heavily inspired by simple-peer
  • integrated signaling out of the box
  • dynamic number of streams in single connection (via @rtco/peer)
  • facilitate different peer network topologies (e.g., 1-1 Calls or many-many Rooms)
  • multi-platform support (i.e., browser, React Native, Node.js)
  • easy to use signaling server
  • integration with existing Node.js servers
  • provide all the needed support for @rtco/client

Usage

Please refer to Artico's documentation for more information.

References

  • PeerJS - This project was inspired by PeerJS and aims at being as simple as PeerJS, while covering more complex scenarios.
  • simple-peer - @rtco/peer is heavily inspired by simple-peer and maintains similar goals.
  • Socket.io - Used as the connection protocol between peers and the signaling server.
  • RTCMultiConnection - Artico aims at providing advanced features found in this great project.

artico's People

Contributors

anupamkris avatar dependabot[bot] avatar matallui avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

artico's Issues

Unable to install @rtco/client

I stumbled upon this project searching for peerjs which is not maintained anymore. But I cant seem to install this..

error Couldn't find package "@rtco/logger@*" required by "@rtco/client" on the "npm" registry.

I tried both yarn and npm, both gave me the same error.

Unable to answer call in Edge

This is a simple implementation of the @rtco.client library.
GitHub | VercelHosted

So, when I attempt to call from Edge and answer it from any other browser (tried: OperaGX, Chrome Mobile), the answer call function is working correctly and the call is opening, but when I call from any browser (tried: Edge, OperaGX, Chrome Mobile) to Edge, the answer call function won't work, i.e. the call.on("open") is not being triggered.

How to setup custom TURN & STUN server in Room example ?

In Room example i can see

import { Artico } from "@rtco/client";

const rtco = new Artico();

I couldn't find the option to add custom TURN & STUN server in this Artico class, those are only available in Peer class which is in @rtco/peer

How can i add the RTCConfiguration in the Room example ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.