Skip to content


Folders and files

Last commit message
Last commit date

Latest commit



37 Commits

Repository files navigation

Mesa X

Mesa X is a project by dpp to see if we can think about spreadsheets differently.

dpp wrote a bit about other ways to think about spreadsheets.

This project is exploratory…​ it’s dpp’s exploration of different spreadsheet approaches…​ and an exploration of coding in Rust.

For design thinking, etc. please check out the /info directory or the upcoming blog.

The project is licensed under an Apache 2.0 license. If there are cool things to be done with spreadsheets, let’s make them universally available.

Development Configuration

Here’s how @dpp has his system configured. Your config may vary.

Ubuntu 20.04

Rust: install Rust Up and Build Essentail to compile and test Rust code.

Install npm which gets you NodeJS and such as well.

Communication between browser and the spreadsheet server is via gRPC-Web…​ and the client code uses Improbable gRPC-Web as it has better support for TypeScript…​ at least in July 2020 when @dpp made the call to use Improbable’s stuff.

Install the ProtoC Protobuf compiler.

Getting started/hello world

Open 3 terminal windows.

In the first window, at the top level directory, type cargo test to build and test the code. Once the code is built, run the “Hello World” server: ./target/debug/helloworld-server

In the second window, cd into the 3rd_party_bin directory and type: ./ to start the gRPC-Web → gRPC proxy.

In the third window, cd into the client directory and type (note, you’ll have to install npm and protoc):

  • npm install to install all the dependencies

  • npm run protoc to compile the .proto files into TypeScript files

  • npm start to start the application

In your browser, click the “Activate Laser” button to initiate browser → Rust gRPC

Most of this stuff is the building blocks for interprocess communication. It will evolve into the spreadsheet client running in the browser communicating over gRPC to the server.

Pull requests welcome.