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

Latest commit

 

History

History
171 lines (113 loc) · 6.46 KB

README.md

File metadata and controls

171 lines (113 loc) · 6.46 KB

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