{"id":17786026,"url":"https://github.com/saltyrtc/saltyrtc-client-js","last_synced_at":"2025-03-16T05:31:05.366Z","repository":{"id":8452228,"uuid":"58461140","full_name":"saltyrtc/saltyrtc-client-js","owner":"saltyrtc","description":"SaltyRTC JavaScript implementation.","archived":false,"fork":false,"pushed_at":"2023-05-03T23:01:31.000Z","size":2776,"stargazers_count":29,"open_issues_count":14,"forks_count":6,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-12T03:38:56.290Z","etag":null,"topics":["client","javascript","saltyrtc","signaling"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/saltyrtc.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-05-10T12:53:16.000Z","updated_at":"2023-01-21T05:21:26.000Z","dependencies_parsed_at":"2024-06-19T05:15:49.530Z","dependency_job_id":"19d22b97-e101-41a3-848d-0cd4c751fbd3","html_url":"https://github.com/saltyrtc/saltyrtc-client-js","commit_stats":{"total_commits":532,"total_committers":4,"mean_commits":133.0,"dds":0.1484962406015038,"last_synced_commit":"7b8413b2e053172f2db379dab6c895e5327cc001"},"previous_names":[],"tags_count":48,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saltyrtc%2Fsaltyrtc-client-js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saltyrtc%2Fsaltyrtc-client-js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saltyrtc%2Fsaltyrtc-client-js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saltyrtc%2Fsaltyrtc-client-js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/saltyrtc","download_url":"https://codeload.github.com/saltyrtc/saltyrtc-client-js/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243790982,"owners_count":20348379,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["client","javascript","saltyrtc","signaling"],"created_at":"2024-10-27T09:04:02.008Z","updated_at":"2025-03-16T05:31:04.445Z","avatar_url":"https://github.com/saltyrtc.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SaltyRTC JavaScript Client\n\n[![CircleCI](https://circleci.com/gh/saltyrtc/saltyrtc-client-js/tree/master.svg?style=shield)](https://circleci.com/gh/saltyrtc/saltyrtc-client-js/tree/master)\n[![Supported ES Standard](https://img.shields.io/badge/javascript-ES5%20%2F%20ES2015-yellow.svg)](https://github.com/saltyrtc/saltyrtc-client-js)\n[![npm Version](https://img.shields.io/npm/v/@saltyrtc/client.svg?maxAge=2592000)](https://www.npmjs.com/package/@saltyrtc/client)\n[![npm Downloads](https://img.shields.io/npm/dt/@saltyrtc/client.svg?maxAge=3600)](https://www.npmjs.com/package/@saltyrtc/client)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/saltyrtc/saltyrtc-client-js)\n[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/536/badge)](https://bestpractices.coreinfrastructure.org/projects/536)\n[![Chat on Gitter](https://badges.gitter.im/saltyrtc/Lobby.svg)](https://gitter.im/saltyrtc/Lobby)\n\nThis is a [SaltyRTC](https://github.com/saltyrtc/saltyrtc-meta) v1\nimplementation for JavaScript (ES5+) written in TypeScript.\n\n\u003e :warning: **Note:** The SaltyRTC client libraries are in maintenance mode.\n\u003e They will still receive bugfixes and regular maintenance, but if you want to\n\u003e start using these libraries, be prepared that you will need to take over\n\u003e maintenance at some point in time. (If you are interested in maintaining the\n\u003e libraries, please let us know, our e-mails are in the README, section\n\u003e \"Security\".)\n\nThe library has been tested with Firefox 45+ and Chromium 49+.\n\n- [Docs](https://saltyrtc.github.io/saltyrtc-client-js/docs/)\n- [API Docs](https://saltyrtc.github.io/saltyrtc-client-js/apidocs/)\n\n## Installing\n\n### Via npm\n\nYou can install this library via `npm`:\n\n    npm install --save @saltyrtc/client msgpack-lite tweetnacl\n\n### Manually\n\nAlternatively, copy one of the following files to your project directly:\n\n- ES2015: `dist/saltyrtc-client.es2015.js`\n- ES5: `dist/saltyrtc-client.es5.js`\n- ES5 minified: `dist/saltyrtc-client.es5.min.js`\n\nMake sure to manually add the following external dependencies to your project:\n\n- [tweetnacl](https://github.com/dchest/tweetnacl-js)\n- [msgpack-lite](https://github.com/kawanet/msgpack-lite)\n\n## Usage\n\nSee [Docs](https://saltyrtc.github.io/saltyrtc-client-js/docs/).\n\n## Development\n\nInstall dependencies:\n\n    $ npm install\n\nTo compile the TypeScript sources to a single JavaScript (ES5 / Minified ES5 / ES2015) file:\n\n    $ npm run dist\n\nThe resulting files will be located in `dist/`.\n\n## Testing\n\n### 1. Preparing the Server\n\nFirst, clone the `saltyrtc-server-python` repository.\n\n    git clone https://github.com/saltyrtc/saltyrtc-server-python\n    cd saltyrtc-server-python\n\nThen create a test certificate for localhost, valid for 5 years.\n\n    openssl req \\\n       -newkey rsa:1024 \\\n       -x509 \\\n       -nodes \\\n       -keyout saltyrtc.key \\\n       -new \\\n       -out saltyrtc.crt \\\n       -subj /CN=localhost \\\n       -reqexts SAN \\\n       -extensions SAN \\\n       -config \u003c(cat /etc/ssl/openssl.cnf \\\n         \u003c(printf '[SAN]\\nsubjectAltName=DNS:localhost')) \\\n       -sha256 \\\n       -days 1825\n\nYou can import this file into your browser certificate store. For Chrome/Chromium, use this command:\n\n    certutil -d sql:$HOME/.pki/nssdb -A -t \"P,,\" -n saltyrtc-test-ca -i saltyrtc.crt\n\nAdditionally, you need to open `chrome://flags/#allow-insecure-localhost` and\nenable it.\n\nIn Firefox the easiest way to add your certificate to the browser is to start\nthe SaltyRTC server (e.g. on `localhost` port 8765), then to visit the\ncorresponding URL via https (e.g. `https://localhost:8765`). Then, in the\ncertificate warning dialog that pops up, choose \"Advanced\" and add a permanent\nexception.\n\nCreate a Python virtualenv with dependencies:\n\n    python3 -m virtualenv venv\n    venv/bin/pip install .[logging]\n\nFinally, start the server with the following test permanent key:\n\n    export SALTYRTC_SERVER_PERMANENT_KEY=0919b266ce1855419e4066fc076b39855e728768e3afa773105edd2e37037c20 # Public: 09a59a5fa6b45cb07638a3a6e347ce563a948b756fd22f9527465f7c79c2a864\n    venv/bin/saltyrtc-server -v 5 serve -p 8765 \\\n        -sc saltyrtc.crt -sk saltyrtc.key \\\n        -k $SALTYRTC_SERVER_PERMANENT_KEY\n\n\n### 2. Running Tests\n\nTo compile the test sources, run:\n\n    $ npm run rollup_tests\n\nThen simply open `tests/testsuite.html` in your browser!\n\nAlternatively, run the tests automatically in Firefox and Chrome:\n\n    $ npm test\n\n\n### 3. Linting\n\nTo run linting checks:\n\n    npm run lint\n\nYou can also install a pre-push hook to do the linting:\n\n    echo -e '#!/bin/sh\\nnpm run lint' \u003e .git/hooks/pre-push\n    chmod +x .git/hooks/pre-push\n\n\n## Security\n\n### Responsible Disclosure / Reporting Security Issues\n\nPlease report security issues directly to one or both of the following contacts:\n\n- Danilo Bargen\n    - Email: mail@dbrgn.ch\n    - Threema: EBEP4UCA\n    - GPG: [EA456E8BAF0109429583EED83578F667F2F3A5FA][keybase-dbrgn]\n- Lennart Grahl\n    - Email: lennart.grahl@gmail.com\n    - Threema: MSFVEW6C\n    - GPG: [3FDB14868A2B36D638F3C495F98FBED10482ABA6][keybase-lgrahl]\n\n[keybase-dbrgn]: https://keybase.io/dbrgn\n[keybase-lgrahl]: https://keybase.io/lgrahl\n\n## Coding Guidelines\n\n- Write clean ES2015\n- Favor `const` over `let`\n\n## License\n\nMIT, see `LICENSE.md`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaltyrtc%2Fsaltyrtc-client-js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsaltyrtc%2Fsaltyrtc-client-js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaltyrtc%2Fsaltyrtc-client-js/lists"}