{"id":21858571,"url":"https://github.com/vircadia/vircadia-web-sdk","last_synced_at":"2025-04-14T19:02:27.892Z","repository":{"id":37013033,"uuid":"365081714","full_name":"vircadia/vircadia-web-sdk","owner":"vircadia","description":"Vircadia Web SDK - an SDK for the Vircadia platform that runs in your web browser.","archived":false,"fork":false,"pushed_at":"2024-03-03T18:57:10.000Z","size":3865,"stargazers_count":35,"open_issues_count":85,"forks_count":28,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-28T07:22:31.217Z","etag":null,"topics":["javascript","metaverse","metaverse-infrastructure","typescript"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vircadia.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2021-05-07T01:31:05.000Z","updated_at":"2024-03-20T16:29:07.000Z","dependencies_parsed_at":"2023-01-17T13:16:08.852Z","dependency_job_id":"1c48afc7-79ff-4976-b8f7-176e447dc133","html_url":"https://github.com/vircadia/vircadia-web-sdk","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vircadia%2Fvircadia-web-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vircadia%2Fvircadia-web-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vircadia%2Fvircadia-web-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vircadia%2Fvircadia-web-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vircadia","download_url":"https://codeload.github.com/vircadia/vircadia-web-sdk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248943378,"owners_count":21186955,"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":["javascript","metaverse","metaverse-infrastructure","typescript"],"created_at":"2024-11-28T02:46:24.720Z","updated_at":"2025-04-14T19:02:27.846Z","avatar_url":"https://github.com/vircadia.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Vircadia Web SDK\n\n![Alt](https://repobeats.axiom.co/api/embed/eb811d31c2cb1112f3a33a0be932880200d98290.svg \"Repobeats analytics image\")\n\nThe **Vircadia Web SDK** (codename Ananke) is a JavaScript/TypeScript SDK for developing web-based applications for virtual worlds powered by the open source metaverse platform [Vircadia](https://vircadia.com/). Vircadia domain servers provide the worlds (a.k.a. \"domains\") to visit, and the Vircadia\nmetaverse server provides global services that connect the users and domains.\nSee the user docs to [Understand the Architecture](https://docs.vircadia.dev/#understand-the-architecture).\n\nThis SDK provides interfaces to:\n- Connect to domains.\n- Use metaverse services.\n\nThe SDK is written in TypeScript.\n- [Project Configuration](CONFIGURATION.md)\n- [Coding Standard](CODING_STANDARD.md)\n\nThe SDK is published at NPM: https://www.npmjs.com/package/@vircadia/web-sdk\n\nTo learn more about using Vircadia's metaverse ecosystem, see the [Developer Documentation](https://docs.vircadia.dev).\n\n\n## Prerequisites\n\n### Node.js\n\nhttps://nodejs.org/en/download/\n\n**Node.js** version \u0026ge; 10.13 ; LTS version \u0026ge; 14.16 recommended  \n**npm** version \u0026ge; 6.4.1 ; LTS version \u0026ge; 6.14 recommended\n\n### Jest\n\n[Jest](https://jestjs.io/) is used for unit testing. It is included as an NPM dev dependency, however, you may also install it globally if you want\nto. \n\n## Project Setup\n\n### Get the source\n\n```\ngit clone https://github.com/vircadia/vircadia-web-sdk.git\n```\n\nIf you're working on Vircadia protocol code (that in the `\\src\\domain` directory) it is recommended that you clone the SDK as\na subdirectory of the main Vircadia repo's source so that both sets of code are accessed when you open the main Vircadia repo's\nsource in your IDE. For example, if your clone of the main Vircadia repo's source is in `C:\\Workspaces\\vircadia` then clone\nthe SDK repo's source into `C:\\Workspaces\\vircadia-web-sdk`. Thus with the main Vircadia's repo loaded in your IDE, when\nyou search for code then both C++ and TypeScript results are returned, helping you compare the two codebases and keep them in\nsync.\n\nNote: Unix line endings (LF, `0A` character) are used. If using Windows it is recommended that you configure Git's global setting `core.autocrlf` to be `true`. This makes the files use Windows line endings (CRLF, `0D0A` characters) on your computer but stores the files in the Git repo with Linux line endings.\n\n\n### Install NPM packages\n\n```\nnpm install\n```\nLoads all the supporting NPM packages as defined in `package.json` into the `node_modules` directory.\n\n## Development and Testing\n\n### Compile and minify for development\n```\nnpm run build\n```\nDoes a development compile and packages the SDK into the `dist` directory.\n\n### Hot-recompile for development\n```\nnpm run watch\n```\nDoes a development compile and enables webpack to watch the sources and recomile when source files change.\nThis is often useful when testing SDK development using the `example` tool.\n\n### Compile and minify for production\n```\nnpm run build-prod\n```\nDoes a clean production compile and packages a releasable version of the SDK into the `dist` directory.\n\n### Hot-recompile for production\n```\nnpm run watch-prod\n```\nDoes a clean production compile and enables webpack to watch the sources and recompile when the source files change.\n\n### Clean the build directory\n```\nnpm run clean\n```\n\n### Lint files\n\nAll files:\n```\nnpm run lint\n```\n\nA specific directory or file:\n```\nnpm run lint-path \u003cpath\u003e\n```\n\n### Run tests\n\nUnit tests can be run without any external dependencies but integration tests require a domain server to be running on\n`localhost` or other location specified in `./tests/test.config.json`. The location and other values of the config JSON can be\noverridden with environment variables, using the same property names, but prefixed with \"VIRCADIA_\".\n\nAll tests:\n```\nnpm run test\n```\nHot retest of all tests:\n```\nnpm run test-watch\n```\n\nSpecific tests (e.g., Packet.unit.test.js, all unit tests, all integration tests):\n```\nnpm run test \u003cpartial-path\u003e\n\nnpm run test /packet.unit\nnpm run test .unit.\nnpm run test .integration.\n```\n\nRun tests and report open handles:\n```\nnpm run test-debug [\u003cpartial-path\u003e]\n```\n\n\n### Generate docs\n\nSDK API documentation:\n```\nnpm run sdkdoc\n```\n\nDeveloper documentation (includes SDK API documentation):\n```\nnpm run devdoc\n```\n\n### Update contributors\n\nUpdate contributors list in package.json:\n\n```\nnpm run update-contributors\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvircadia%2Fvircadia-web-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvircadia%2Fvircadia-web-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvircadia%2Fvircadia-web-sdk/lists"}