{"id":26832712,"url":"https://github.com/finos/vuu","last_synced_at":"2026-04-02T21:36:24.335Z","repository":{"id":37101028,"uuid":"209841878","full_name":"finos/vuu","owner":"finos","description":"Vuu - an open source view server and html 5 based UI system","archived":false,"fork":false,"pushed_at":"2026-01-15T15:59:12.000Z","size":27753,"stargazers_count":54,"open_issues_count":234,"forks_count":39,"subscribers_count":9,"default_branch":"main","last_synced_at":"2026-01-17T10:26:05.399Z","etag":null,"topics":["grids","react","view-server","websockets"],"latest_commit_sha":null,"homepage":"https://vuu.finos.org","language":"TypeScript","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/finos.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/security/authentication.md","support":null,"governance":null,"roadmap":"docs/roadmap.mdx","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-09-20T17:06:03.000Z","updated_at":"2026-01-15T15:59:18.000Z","dependencies_parsed_at":"2023-10-16T02:52:41.963Z","dependency_job_id":"25ea033f-863e-4ddc-848a-fa17a5e58fb2","html_url":"https://github.com/finos/vuu","commit_stats":null,"previous_names":["venuu-io/vuu"],"tags_count":134,"template":false,"template_full_name":null,"purl":"pkg:github/finos/vuu","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/finos%2Fvuu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/finos%2Fvuu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/finos%2Fvuu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/finos%2Fvuu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/finos","download_url":"https://codeload.github.com/finos/vuu/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/finos%2Fvuu/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28661882,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["grids","react","view-server","websockets"],"created_at":"2025-03-30T15:18:24.174Z","updated_at":"2026-04-02T21:36:24.328Z","avatar_url":"https://github.com/finos.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![FINOS - Incubating](https://cdn.jsdelivr.net/gh/finos/contrib-toolbox@master/images/badge-incubating.svg)](https://community.finos.org/docs/governance/Software-Projects/stages/incubating)\n\n# Vuu: The Realtime View Server\n\nWelcome to Vuu. For full documentation, architecture diagrams, and deep dives, visit our documentation site:\n👉 **[vuu.finos.org](https://vuu.finos.org/desktop/docs/introduction/intro)**\n\n---\n\n## Overview\n\nThis repository contains the source code for the **Vuu server** and a suite of **UI library packages**.\n\n### ⚠️ Architectural Update: Networking \u0026 Hosting\nWe have recently decoupled the web hosting layer from the core Vuu engine to provide greater deployment flexibility:\n\n* **WebSocket Layer:** This remains **built-in** to the Vuu server to handle high-performance, real-time data streaming.\n* **HTTP Server:** Vuu **no longer** includes a built-in HTTP server for REST endpoints or static file hosting.\n\nTo establish a complete client session (e.g., from a UI), you need an external HTTP layer to supplement the Vuu WebSocket service. For a quick-start experience, we provide a **reference implementation using Vert.x** in the `examples/http2-server` folder.\n\n---\n\n## Installation - Client\n\nThe UI scripts all run from the vuu/vuu-ui directory.\n\n```sh\n# Clone the repository\ngit clone [https://github.com/finos/vuu.git](https://github.com/finos/vuu.git)\n\ncd vuu-ui\nnpm install\nnpm run build\nnpm run build:app\n```\n\nThe first build step (`npm run build`) builds the UI library packages, the packages are written to the `dist` folder.\n\nThe second step (`npm run build:app`) builds the sample application. Application bundles are written to `deployed_apps`. The UI library packages are dependencies of the application.\n\n---\n\n## Installation - Server\n\n#### Prerequisites\n* **Java 17+**\n* The example client code has already been installed and is ready in `deployed_apps`\n\n#### Linux \u0026 macOS\n\n```sh\n# From the root folder, build both the core project and the examples\n./mvnw install -DskipTests\n\n# Navigate to the reference implementation in the examples folder\ncd example/main \n\n# Start the example server (with HTTP REST endpoints and Vuu WebSocket)\n../../mvnw exec:exec\n```\n\n#### Windows\n\n```sh\n# From the root folder, build both the core project and the examples\nmvnw.cmd install -DskipTests\n\n# Navigate to the reference implementation in the examples folder\ncd example\\main \n\n# Start the example server (with HTTP REST endpoints and Vuu WebSocket)\n..\\..\\mvnw.cmd exec:exec\n```\n\n#### IntelliJ\n\nYou may prefer to run the backend using the IntelliJ IDE instead of from the command line.\n\n1. Install the Scala plugin: file -\u003e settings -\u003e plugins\n2. Set project SDK version to 17: file -\u003e project structure -\u003e select an SDK -\u003e require version 17\n3. Enable 'Use plugin registry': file -\u003e settings -\u003e build, execution, deployment -\u003e Maven\n4. Open Maven tab on the right and click install on vuu-parent -\u003e lifecycle -\u003e install\n5. In IntelliJ, select the 'SimulMain' run configuration config and click run.\n\n### Accessing the UI\n\nOnce launched using one of the methods above, the demo app can be accessed at \u003chttps://localhost:8443/index.html\u003e\n\n---\n\n## Advanced Installation\n\nWhile serving the Sample UI application directly from the Vuu server is convenient for initial testing, real-world deployments typically decouple the UI from the server.\n\nThe Sample UI is designed with a **modular, metadata-driven architecture**. This allows the client to connect to any active Vuu server instance, making it an ideal setup for testing new server implementations or mimicking production environments.\n\n### Prerequisites\n\nBefore running the UI in decoupled mode, ensure you have the following:\n\n* **Active Vuu Server:** A running Vuu server instance (ensure it is not locked behind a production-grade authentication solution for this demo).\n* **Built Client:** The UI must be built and located at `./deployed_apps`.\n* **Network Access:** The Vuu server can be on a separate machine; it is not required to serve the client UI code.\n\n### How to Launch\n\nExecute the following command to serve the application locally and target your Vuu server.\n\n\u003e **Note:** This example assumes the Vuu server is running on `localhost` using default ports. Adjust the URLs accordingly for remote deployments.\n\n```bash\nnpm run launch:app -- --authurl https://localhost:8443/api --wsurl wss://localhost:8090/websocket\n```\n\n### Authentication \u0026 Connection Flow\nThe application follows a standard handshake process to establish data streams:\n\n1) Sign-In: A login screen will be displayed upon launch.\n2) Auth Request: The credentials entered are sent to the --authurl.\n3) Token Exchange: The Vuu server (using the default example implementation) validates the request and yields an Auth Token.\n4) WebSocket Handshake: This token is then used to authorize and open a persistent websocket connection at the --wsurl.\n\n### Technical Considerations\n#### CORS and Proxying\nTo avoid \"Same-Origin Policy\" (CORS) issues during the authentication phase, the local HTTP server serving the UI proxies the auth request to the Vuu server.\n\n#### WebSocket Connectivity\nCross-domain WebSocket requests are not subject to the same same-origin restrictions as standard HTTP requests. Therefore, the UI can establish a direct connection to the Vuu server's websocket port without additional proxy configuration.\n\n---\n\n## Usage example\n\n```\nWork In Progress!\n```\n\n## Roadmap\n\n[Roadmap](https://vuu.finos.org/desktop/docs/roadmap)\n\n## Contact\n\n[Contact](https://vuu.finos.org/desktop/docs/contact)\n\n## Contributing\n\nFor any questions, bugs or feature requests please open an [issue](https://github.com/finos/vuu/issues).\n\nTo submit a contribution:\n\n1. Fork it (\u003chttps://github.com/finos/vuu/fork\u003e)\n2. Create your feature branch (`git checkout -b feature/fooBar`)\n3. Read our [contribution guidelines](.github/CONTRIBUTING.md) and [Community Code of Conduct](https://www.finos.org/code-of-conduct)\n4. Commit your changes (`git commit -am 'Add some fooBar'`)\n5. Push to the branch (`git push origin feature/fooBar`)\n6. Create a new Pull Request\n\n_NOTE:_ Commits and pull requests to FINOS repositories will only be accepted from those contributors with an active, executed Individual Contributor License Agreement (ICLA) with FINOS OR who are covered under an existing and active Corporate Contribution License Agreement (CCLA) executed with FINOS. Commits from individuals not covered under an ICLA or CCLA will be flagged and blocked by the FINOS Clabot tool (or [EasyCLA](https://community.finos.org/docs/governance/Software-Projects/easycla)). Please note that some CCLAs require individuals/employees to be explicitly named on the CCLA.\n\n_Need an ICLA? Unsure if you are covered under an existing CCLA? Email [help@finos.org](mailto:help@finos.org)_\n\n## License\n\nCopyright 2022 venuu-io\n\nDistributed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0).\n\nSPDX-License-Identifier: [Apache-2.0](https://spdx.org/licenses/Apache-2.0)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffinos%2Fvuu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffinos%2Fvuu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffinos%2Fvuu/lists"}