All Projects → unadlib → data-transport

unadlib / data-transport

Licence: MIT License
A generic and responsible communication transporter(iframe/Broadcast/Web Worker/Service Worker/Shared Worker/WebRTC/Electron, etc.)

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to data-transport

broadcast-sample-app
OpenTok Broadcast Sample Application
Stars: ✭ 48 (+77.78%)
Mutual labels:  webrtc, broadcast
Media Server Go Demo
webrtc media server go demo
Stars: ✭ 140 (+418.52%)
Mutual labels:  webrtc, broadcast
snowem
Snowem is a lightweight live streaming server, based on webrtc technology. Its design mainly focuses on simplicity, scalability and high performance.
Stars: ✭ 73 (+170.37%)
Mutual labels:  webrtc, broadcast
Planktos
Serving websites over bittorrent
Stars: ✭ 481 (+1681.48%)
Mutual labels:  service-worker, webrtc
Aws Lex Web Ui
Sample Amazon Lex chat bot web interface
Stars: ✭ 500 (+1751.85%)
Mutual labels:  webrtc, iframe
iframe-worker
A tiny WebWorker polyfill for the file:// protocol
Stars: ✭ 23 (-14.81%)
Mutual labels:  iframe, webworker
grwave
Python for ITU P.368 : Ground-wave propagation curves for frequencies between 10 kHz and 30 MHz
Stars: ✭ 19 (-29.63%)
Mutual labels:  broadcast
vkListr
Скачивание списка Участников сообщества ВКонтакте
Stars: ✭ 14 (-48.15%)
Mutual labels:  webworker
ng-webworker
Repository featuring a web worker running within Angular.
Stars: ✭ 14 (-48.15%)
Mutual labels:  webworker
ipfs-browser-gateway
An IPFS gateway without server, by utilizing service worker.
Stars: ✭ 31 (+14.81%)
Mutual labels:  service-worker
BulletJournal
An organizational system that helps you keep track of everything in your busy life
Stars: ✭ 117 (+333.33%)
Mutual labels:  webrtc
clean-to-the-core
🍏 A gluten free, accessible, offline-first, progressive web app for creating healthy meals.
Stars: ✭ 12 (-55.56%)
Mutual labels:  service-worker
webpush-example
A basic push notifications app built on Laravel and Vanilla Javascript.
Stars: ✭ 26 (-3.7%)
Mutual labels:  service-worker
gologger
A concurrent, fast queue/service worker based filesystem logging system perfect for servers with concurrent connections
Stars: ✭ 16 (-40.74%)
Mutual labels:  service-worker
wordpress-pwacommerce
PWACommerce - WooCommerce Mobile Plugin for Progressive Web Apps & Hybrid Mobile Apps
Stars: ✭ 20 (-25.93%)
Mutual labels:  service-worker
gatsby-pwa-demo
PWA Example: Progressive Web App E-Commerce with Gatsby.js
Stars: ✭ 68 (+151.85%)
Mutual labels:  service-worker
react-native-ibeacon-simulator
Simulate device act as an iBeacon, or transmit as an iBeacon signal from your phone
Stars: ✭ 48 (+77.78%)
Mutual labels:  broadcast
incubator-eventmesh
EventMesh is a dynamic event-driven application runtime used to decouple the application and backend middleware layer, which supports a wide range of use cases that encompass complex multi-cloud, widely distributed topologies using diverse technology stacks.
Stars: ✭ 939 (+3377.78%)
Mutual labels:  message-bus
socketio-shared-webworker
Socket.io client inside a WebWorker thread
Stars: ✭ 85 (+214.81%)
Mutual labels:  webworker
Mosque-Screen
Chat: https://discord.gg/CG7frj2 - Email: [email protected]. We do not provide any support, this is a volunteer-based project therefore we cannot commit to any time to resolve local issues.
Stars: ✭ 54 (+100%)
Mutual labels:  service-worker

data-transport

Node CI npm version

A generic and responsible communication transporter

Support Transport

  • iframe
  • Broadcast
  • Web Worker
  • Service Worker
  • Shared Worker
  • WebRTC
  • Electron

Usage

  • Installation
yarn add data-transport
  • Define type
interface Internal {
  hello({ num: number }): Promise<{ text: string }>;
}
  • Create transports
const internal: Transport<Internal> = createTransport('IFrameInternal');
const external: Transport<any, Internal> = createTransport('IFrameMain');

external.listen('hello', async (options) => ({ text: `hello ${options.num}` }));

expect(await internal.emit('hello', { num: 42 }).toEqual({ text: 'hello 42' });

Todo

  • support transport merging

Examples

Online with Broadcast

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].