Awesome
Desk
š® The application platform for your cyberpunk desk
š§ Project Status: FROZEN š§
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.
No Release!
Status: All releases are behind the previous schedule for several reasons, so I updated it below.
Reasons:
- I'm building query-flow for
deskc
anddworkspace
. - 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). - 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.
- I've returned to Neovim after several years of a temporary stay in the VSCode.
- With the lowest priority, I have about three my own projects now to improve IDE experience with the Neovim ecosystem.
- I've built a Keyball39, a split keyboard placing a injection-molded trackball slot in the really ergonomic position.
- I'm going to completely re-design the Desk-lang.
Pre-release (by the end of 2025)
Pre-release includes:
- incremental Desk-lang compiler
- DeskVM with an official scheduler
- a file system for Desk-lang
- Desk-lang visual editor
- A web demo like Rust Playground for Desk-lang
The first release (by the end of 2030)
The first release includes:
- MVP of Desk Craft, a game engine
- a platformer game demo
- a space to publish created games
- real-time collaboration on Web
- paid plans for Desk X (official hosting)
See the draft of the first release
Goals and Philosophy
šÆ Blur the line between living and coding šÆ Make every software programmable
- š® Intuitive like games
- š„¼ Pragmatic like professional tools
- šŗļøļø Versatile like spreadsheets
- š Accessible to everyone
- š¹ Minimalist design
Why Desk?
Desk apps are inherently:
- š¼ code-oriented like data-oriented
- š statically-typed (data and UI)
- š¤ programmable (extensible by code)
- š§² interoperable with other Desk apps
- š± running on everywhere (web, desktop, mobile)
How does Desk work?
Desk is consist of:
- Desk Programming Language and Desk Compiler (deskc)
- Desk Workspace System (dworkspace)
- DeskVM (deskvm)
- Desk-plugins (dplugins)
Desk Programming Language (Desk-lang)
Desk-lang is a programming language that has:
- minimalistic syntax and semantics
- type system with inference
- algebraic effects
- content-addressable by type and UUID
- incremental compilation
Most of the data and programs on Desk apps are finally evaluated as a snippet of Desk-lang.
Desk Compiler (deskc)
Desk compiler is an incremental compiler for Desk-lang.
Crates
- deskc: the incremental compiler
- deskc-lexer scans Desk-lang source code and generates tokens
- deskc-parser parses tokens and generates an AST
- deskc-typeinfer infers types of expressions.
- deskc-mirgen generates MIR
Desk-workspace (dworkspace)
Desk-workspace is a platform-agnostic environment for editing Desk-lang.
Desk-workspace provides these features:
- file system for Desk-lang
- permission management system
- realtime collaboration support
Crates
- dworkspace: the implementation
- dworkspace-codebase defines structs for a codebase
DeskVM (deskvm)
DeskVM is a runtime for Desk-lang influenced by Erlang VM.
Features
- platform-agnostic
- capable of running many programs as a d-process
- type-driven message passing and pub/sub
- interpreter-agnostic: DeskVM can run anything as a d-process
- preemptive scheduling
- custom scheduler support
Crates
- deskvm: the implementation
- deskvm-dprocess defines structs of such as d-process
Desk-plugins (dplugins)
There are many Desk-plugins. Each Desk-plugin implements a single feature as a Bevy Plugin.
- š§ Desk Craft for game development
- š§ Desk Brain for productivity
- š§ Desk Verse for communication
- š§ Desk Robot for automation
- š§ Desk Board for BI
- š§ Desk Calendar for scheduling
- š§ Desk Pages for hosting
š§ not yet implemented
Is it any good?
Yes.