{"id":16451738,"url":"https://github.com/tpolecat/mud","last_synced_at":"2025-09-13T13:22:22.257Z","repository":{"id":8639704,"uuid":"10288129","full_name":"tpolecat/mud","owner":"tpolecat","description":"Experimental pure functional, nonblocking port of bits of DikuMUD.","archived":false,"fork":false,"pushed_at":"2014-05-06T05:15:44.000Z","size":312,"stargazers_count":6,"open_issues_count":0,"forks_count":3,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-02-06T01:49:32.105Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Scala","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/tpolecat.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}},"created_at":"2013-05-25T18:35:00.000Z","updated_at":"2018-01-25T05:22:37.000Z","dependencies_parsed_at":"2022-08-22T09:40:12.081Z","dependency_job_id":null,"html_url":"https://github.com/tpolecat/mud","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tpolecat%2Fmud","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tpolecat%2Fmud/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tpolecat%2Fmud/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tpolecat%2Fmud/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tpolecat","download_url":"https://codeload.github.com/tpolecat/mud/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238455213,"owners_count":19475411,"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":[],"created_at":"2024-10-11T10:10:12.230Z","updated_at":"2025-02-12T10:33:12.729Z","avatar_url":"https://github.com/tpolecat.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"mud\n===\n\nExperimental pure functional, nonblocking port of bits of DikuMUD.\n\nSo far you can log in and walk around and see other players. That's it. But if this kind of thing excites you, all you should need to do is `sbt run` and then `telnet localhost 6011` in a few windows. Directions and `look` are the only commands so far.\n    \n\nImplementation Notes\n--------------------\n\nThis is mostly an experiment in applying `tiny-worlds` to something nontrivial, and so far it's working _extremely_ well. Consructing one-off worlds and world transformers is trivial. `WorldT.Lifted[IO]` instances encapsulate netty and the STM-based gamestate, and several one-off worlds encapsulate minor interactions with mutable doodads like channels.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftpolecat%2Fmud","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftpolecat%2Fmud","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftpolecat%2Fmud/lists"}