{"id":18939975,"url":"https://github.com/Eoic/Canopy","last_synced_at":"2026-03-23T04:30:19.002Z","repository":{"id":258827429,"uuid":"872042517","full_name":"Eoic/Rustle","owner":"Eoic","description":"Create and engage in discussions to grow the infinite virtual forest.","archived":false,"fork":false,"pushed_at":"2024-10-23T22:18:38.000Z","size":260,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-24T10:39:08.622Z","etag":null,"topics":["chatapp","fastapi","forum","javascript","pixijs","python","sqlmodel","typescript","virtual-forest"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Eoic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-10-13T16:26:23.000Z","updated_at":"2024-10-23T22:18:42.000Z","dependencies_parsed_at":"2024-10-24T01:11:45.269Z","dependency_job_id":null,"html_url":"https://github.com/Eoic/Rustle","commit_stats":null,"previous_names":["eoic/rustle"],"tags_count":0,"template":false,"template_full_name":"Eoic/TypescriptViteTemplate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eoic%2FRustle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eoic%2FRustle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eoic%2FRustle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eoic%2FRustle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Eoic","download_url":"https://codeload.github.com/Eoic/Rustle/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239938706,"owners_count":19721699,"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":["chatapp","fastapi","forum","javascript","pixijs","python","sqlmodel","typescript","virtual-forest"],"created_at":"2024-11-08T12:19:34.303Z","updated_at":"2026-03-23T04:30:18.920Z","avatar_url":"https://github.com/Eoic.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rustle\nCreate and engage in real-time discussions to grow the infinite virtual forest. While of potentially little practical value, this is an experiment on applying various networking-related solutions such as real-time chat, multiplayer cursors, infinite grid, spatial partitioning (for network event processing in visible area), and so on.\n\n## Development\n### Client\n1. Install dependencies:\n   ```\n   npm ci\n   ```\n2. Copy `.env.example` to `.env` and set the required environment variables.\n3. Start the development server:\n   ```\n   npm run dev\n   ```\n4. By default, the client runs on [http://127.0.0.1:5173/](http://127.0.0.1:5173/).\n\nSee [package.json](./package.json) for linting and build commands.\n\n### Server\n1. Change the directory to `server/`.\n2. Create a virtual environment and install dependencies:\n   ```\n   python -m venv .venv\n   . .venv/bin/activate\n   pip install -r requirements.txt\n   ```\n3. Run the server:\n   ```\n   ./run.sh\n   ```\n4. By default, the server runs on [http://127.0.0.1:8000/](http://127.0.0.1:8000/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEoic%2FCanopy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FEoic%2FCanopy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEoic%2FCanopy/lists"}