{"id":13539596,"url":"https://github.com/Hihaheho/Desk","last_synced_at":"2025-04-02T06:31:11.119Z","repository":{"id":36976220,"uuid":"426184150","full_name":"Hihaheho/Desk","owner":"Hihaheho","description":"🔮 The application platform for your cyberpunk desk","archived":true,"fork":false,"pushed_at":"2023-09-13T05:08:39.000Z","size":1787,"stargazers_count":111,"open_issues_count":31,"forks_count":10,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-24T17:11:15.891Z","etag":null,"topics":["algebraic-effects","functional-programming","high-code","statically-typed","visual-programming"],"latest_commit_sha":null,"homepage":"https://desk-x.com","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Hihaheho.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":"ryo33"}},"created_at":"2021-11-09T10:25:46.000Z","updated_at":"2024-12-23T03:20:43.000Z","dependencies_parsed_at":"2024-01-16T15:41:37.091Z","dependency_job_id":"bef99118-e2f6-4219-b8d7-984ac1138cae","html_url":"https://github.com/Hihaheho/Desk","commit_stats":{"total_commits":479,"total_committers":5,"mean_commits":95.8,"dds":0.2797494780793319,"last_synced_commit":"1736d5108a84cc124c9496014f0abd5df01951a4"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hihaheho%2FDesk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hihaheho%2FDesk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hihaheho%2FDesk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hihaheho%2FDesk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Hihaheho","download_url":"https://codeload.github.com/Hihaheho/Desk/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245944064,"owners_count":20697948,"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":["algebraic-effects","functional-programming","high-code","statically-typed","visual-programming"],"created_at":"2024-08-01T09:01:28.648Z","updated_at":"2025-04-02T06:31:06.858Z","avatar_url":"https://github.com/Hihaheho.png","language":"Rust","funding_links":["https://github.com/sponsors/ryo33"],"categories":["Rust"],"sub_categories":[],"readme":"# Desk\n\n### 🔮 The application platform for your cyberpunk desk\n\n[![Demo](https://img.shields.io/badge/Desk--X-Wasm+WebGL2-b236a6)](https://desk-x.com)\n[![MIT/Apache 2.0](https://img.shields.io/badge/license-MIT%2FApache--2.0-blue.svg?style=flat)](https://github.com/Hihaheho/Desk/blob/main/LICENSE)\n[![GitHub Sponsors](https://img.shields.io/github/sponsors/ryo33?color=ffc5cd\u0026labelColor=2a4638)](https://github.com/sponsors/ryo33)\n[![GitHub Repo stars](https://img.shields.io/github/stars/Hihaheho/Desk?style=social\u0026color=yellow)](https://github.com/Hihaheho/Desk)\n\n## 🧊 Project Status: FROZEN 🧊\n**This project is currently on hold**. We may consider resuming development in the near future if there's continued interest or demand. For updates on our ongoing projects, please check our Discord or X.\n\n[![Discord](https://img.shields.io/discord/808315755460165683?color=6A7EC2\u0026label=\u0026logo=discord\u0026logoColor=ffffff\u0026labelColor=4e5af0\u0026style=for-the-badge)](https://discord.gg/egTTeg7DRp)\n\n[![Twitter Follow](https://img.shields.io/twitter/follow/HihahehoStudio?style=social)](https://twitter.com/HihahehoStudio)\n\n## ~~No Release!~~\n\n~~Status: All releases are behind the previous schedule for several reasons, so I updated it below.~~\n\n**Reasons:**\n- [ ] I'm building [query-flow](https://github.com/ryo33/query-flow) for `deskc` and `dworkspace`.\n- [ ] I plan to discard the current `mirgen` and design a new MIR intervening between Desk-lang and low-level IR to generate a GC-less binary, which is fast as Rust in theory (in my mind).\n- [x] I've switched to Ubuntu Desktop from M1 Macbook Pro mainly for financial reasons. As a subsequence of it, I can utilize the mold linker.\n- [x] I've returned to Neovim after several years of a temporary stay in the VSCode.\n- [ ] With the lowest priority, I have about three my own projects now to improve IDE experience with the Neovim ecosystem.\n- [x] I've built a [Keyball39](https://shirogane-lab.com/products/keyball39), a split keyboard placing a *injection-molded* trackball slot in the really ergonomic position.\n- [ ] I'm going to completely re-design the Desk-lang.\n\n### ~~Pre-release (by the end of 2025)~~\n\nPre-release includes:\n\n- [x] incremental Desk-lang compiler\n- [x] DeskVM with an official scheduler\n- [x] a file system for Desk-lang\n- [ ] Desk-lang visual editor\n- [ ] A web demo like Rust Playground for Desk-lang\n\n### ~~The first release (by the end of 2030)~~\n\nThe first release includes:\n\n- [ ] MVP of Desk Craft, a game engine\n- [ ] a platformer game demo\n- [ ] a space to publish created games\n- [ ] real-time collaboration on Web\n- [ ] paid plans for Desk X (official hosting)\n\n[See the draft of the first release](/docs/blog/0001-introduce-desk.md)\n\n## Goals and Philosophy\n\n🎯 **Blur the line between living and coding**\n🎯 **Make every software programmable**\n\n- 🎮 **Intuitive** like games\n- 🥼 **Pragmatic** like professional tools\n- 🗺️️ **Versatile** like spreadsheets\n- 💗 **Accessible** to everyone\n- 🛹 **Minimalist** design\n\n## Why Desk?\n\nDesk apps are inherently:\n\n- 🎼 **code-oriented** like data-oriented\n- 🔒 **statically-typed** (data and UI)\n- 🤖 **programmable** (extensible by code)\n- 🧲 **interoperable** with other Desk apps\n- 📱 running on **everywhere** (web, desktop, mobile)\n\n## How does Desk work?\n\nDesk is consist of:\n\n- Desk Programming Language and Desk Compiler (deskc)\n- Desk Workspace System (dworkspace)\n- DeskVM (deskvm)\n- Desk-plugins (dplugins)\n\n## Desk Programming Language (Desk-lang)\n\nDesk-lang is a programming language that has:\n\n- minimalistic syntax and semantics\n- type system with inference\n- algebraic effects\n- content-addressable by type and UUID\n- incremental compilation\n\nMost of the data and programs on Desk apps are finally evaluated as a snippet of Desk-lang.\n\n## Desk Compiler (deskc)\n\nDesk compiler is an incremental compiler for Desk-lang.\n\n**Crates**\n\n- [deskc](/crates/systems/deskc/src): the incremental compiler\n- [deskc-lexer](/crates/systems/deskc-lexer/src) scans Desk-lang source code and generates tokens\n- [deskc-parser](/crates/systems/deskc-parser/src) parses tokens and generates an AST\n- [deskc-typeinfer](/crates/systems/deskc-typeinfer/src) infers types of expressions.\n- [deskc-mirgen](/crates/systems/deskc-mirgen/src) generates [MIR](/crates/components/deskc-mir/src)\n\n## Desk-workspace (dworkspace)\n\nDesk-workspace is a platform-agnostic environment for editing Desk-lang.\n\nDesk-workspace provides these features:\n\n- file system for Desk-lang\n- permission management system\n- realtime collaboration support\n\n**Crates**\n\n- [dworkspace](/crates/systems/dworkspace/src): the implementation\n- [dworkspace-codebase](/crates/components/dworkspace-codebase/src) defines structs for a codebase\n\n## DeskVM (deskvm)\n\nDeskVM is a runtime for Desk-lang influenced by Erlang VM.\n\n**Features**\n\n- platform-agnostic\n- capable of running many programs as a d-process\n- type-driven message passing and pub/sub\n- interpreter-agnostic: DeskVM can run anything as a d-process\n- preemptive scheduling\n- custom scheduler support\n\n**Crates**\n\n- [deskvm](/crates/systems/deskvm/src): the implementation\n- [deskvm-dprocess](/crates/components/deskvm-dprocess/src) defines structs of such as d-process\n\n## Desk-plugins (dplugins)\n\nThere are many Desk-plugins. Each Desk-plugin implements a single feature as a Bevy Plugin.\n\n- 🚧 **Desk Craft** for game development\n- 🚧 **Desk Brain** for productivity\n- 🚧 **Desk Verse** for communication\n- 🚧 **Desk Robot** for automation\n- 🚧 **Desk Board** for BI\n- 🚧 **Desk Calendar** for scheduling\n- 🚧 **Desk Pages** for hosting\n\n🚧 not yet implemented\n\n## Is it any good?\n\nYes.\n\n## Resources\n\n- [Contributing Guide](https://github.com/Hihaheho/Desk/blob/main/docs/CONTRIBUTING.md)\n\n## Join our community\n\n👉 [![Discord](https://img.shields.io/discord/808315755460165683?color=6A7EC2\u0026label=\u0026logo=discord\u0026logoColor=ffffff\u0026labelColor=4e5af0\u0026style=for-the-badge)](https://discord.gg/egTTeg7DRp)\n\n👉 [![Twitter Follow](https://img.shields.io/twitter/follow/HihahehoStudio?style=social)](https://twitter.com/HihahehoStudio)\n\n👉 [![Q\u0026A Have a question?](https://img.shields.io/badge/Q%26A-Have%20a%20question%3F-yellowgreen?style=social\u0026logo=github)](https://github.com/Hihaheho/Desk/discussions/new?category=q-a)\n\n👉 [![GitHub Discussions](https://img.shields.io/github/discussions/Hihaheho/Desk?logo=GitHub\u0026style=social)](https://github.com/Hihaheho/Desk/discussions)\n\n👉 [![GitHub Repo stars](https://img.shields.io/github/stars/Hihaheho/Desk?style=social)](https://github.com/Hihaheho/Desk)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FHihaheho%2FDesk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FHihaheho%2FDesk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FHihaheho%2FDesk/lists"}