Skip to content
This repository has been archived by the owner on Nov 18, 2023. It is now read-only.

Hihaheho/Desk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Desk

๐Ÿ”ฎ The application platform for your cyberpunk desk

Demo MIT/Apache 2.0 GitHub Sponsors GitHub Repo stars

๐ŸงŠ 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.

Discord

Twitter Follow

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 and dworkspace.
  • 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

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

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

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.

Resources

Join our community

๐Ÿ‘‰ Discord

๐Ÿ‘‰ Twitter Follow

๐Ÿ‘‰ Q&A Have a question?

๐Ÿ‘‰ GitHub Discussions

๐Ÿ‘‰ GitHub Repo stars