{"id":18473442,"url":"https://github.com/swimos/transit","last_synced_at":"2025-04-08T12:31:55.464Z","repository":{"id":97910225,"uuid":"171477564","full_name":"swimos/transit","owner":"swimos","description":"Massively real-time city transit streaming application","archived":false,"fork":false,"pushed_at":"2024-03-05T22:12:23.000Z","size":231,"stargazers_count":23,"open_issues_count":2,"forks_count":6,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-03-05T23:28:02.691Z","etag":null,"topics":["actor-model","actors","concurrency","concurrent-programming","demo-app","distributed-systems","map","mapbox","nextbus","public-transportation","real-time","realtime","rest-api","stateful","streaming-api","streaming-data"],"latest_commit_sha":null,"homepage":"http://transit.swim.ai","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/swimos.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}},"created_at":"2019-02-19T13:22:42.000Z","updated_at":"2024-05-30T01:50:12.347Z","dependencies_parsed_at":null,"dependency_job_id":"dee6afbd-4fd1-495e-ac48-d9b300420eac","html_url":"https://github.com/swimos/transit","commit_stats":{"total_commits":75,"total_committers":8,"mean_commits":9.375,"dds":0.72,"last_synced_commit":"7fcb3bb6518502774156885c528e927b2c1993c4"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swimos%2Ftransit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swimos%2Ftransit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swimos%2Ftransit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swimos%2Ftransit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/swimos","download_url":"https://codeload.github.com/swimos/transit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247842686,"owners_count":21005326,"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":["actor-model","actors","concurrency","concurrent-programming","demo-app","distributed-systems","map","mapbox","nextbus","public-transportation","real-time","realtime","rest-api","stateful","streaming-api","streaming-data"],"created_at":"2024-11-06T10:24:57.942Z","updated_at":"2025-04-08T12:31:55.171Z","avatar_url":"https://github.com/swimos.png","language":"TypeScript","readme":"# Transit\n\n## Prerequisites\n\n* [Install JDK 11+](https://www.oracle.com/technetwork/java/javase/downloads/index.html).\n  * Ensure that your `JAVA_HOME` environment variable is pointed to your Java installation location.\n  * Ensure that your `PATH` includes `$JAVA_HOME`.\n\n* [Install Node.js](https://nodejs.org/en/).\n  * Confirm that [npm](https://www.npmjs.com/get-npm) was installed during the Node.js installation.\n\n## Run\n\n### Windows\n\nInstall the [Windows Subsystem for Linux](https://docs.microsoft.com/en-us/windows/wsl/install-win10).\n\nExecute the command `./run.sh` from a console pointed to the application's home directory. This will start a Swim server, seeded with the application's logic, on port 9002.\n   ```console\n    user@machine:~$ ./run.sh\n   ```\n\n### \\*nix\n\nExecute the command `./run.sh` from a console pointed to the application's home directory. This will start a Swim server, seeded with the application's logic, on port 9002.\n   ```console\n    user@machine:~$ ./run.sh\n   ```\n\n## View the UI\nOpen the following URL on your browser: http://localhost:9001.\n\n## Run as a Fabric\n\nRun two Swim instances on your local machine to distribute the applications\nWeb Agents between the two processes.\n\n```sh\n# Build the UI\nserver $ ./build.sh\n\n# Start the first fabric node in one terminal window:\nserver $ ./gradlew run -Dswim.config.resource=server-a.recon\n\n# Start the second fabric node in another terminal window:\nserver $ ./gradlew run -Dswim.config.resource=server-b.recon\n```\n\nWhen both processes are up and running, you can point your browser at either\nhttp://localhost:9008 (Server A) or http://localhost:9009 (Server B).  You\nwill see a live view of all Web Agents, regardless of which server you point\nyour browser at.  Swim transparently demultiplexes links opened by external\nclients, and routes them to the appropriate server in the fabric.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswimos%2Ftransit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fswimos%2Ftransit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswimos%2Ftransit/lists"}