Skip to content

StevenClontz/colltoaction-widip

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Widip

Widip is an interactive environment for computing with wiring diagrams in modern systems.

The widi data structure models the full range of YAML documents giving each document a visual representation. The UNIX ecosystem provides immediate benefits being standard from developer workstations to production servers. A text-based approach makes a productive developer environment with minimal dependencies.

Installation

widip can be installed via pip and run from the command line as follows:

pip install widip
python -m widip

This will automatically install dependencies: discopy (computing, drawing), pyyaml (parser library), and watchdog (filesystem watcher).

Using Widip

Users have two modes of interaction:

Filesystem

  1. While running, .jpgs will be reloaded on file changes
  2. Open .yaml and .jpg files side by side for a fast feedback loop Widip seamlessly integrates with editors and CLIs for Linux and MacOS as a UNIX shell.

Diagrams are written as .yaml documents and are meant for human authors. Widip watches the filesystem for any changes to source and immediately renders updated images to keep pace with graphical reasoning.

In this lightweight environment users can use their own tools for editing text and viewing images. As an example, VS Code will automatically reload README.mds and .jpg tabs when files change.

Command-line interface

Open terminal and run widip to start an interactive session. The program bin/yaml/shell.yaml prompts for one command per line, so when we hit ↵ Enter it is evaluated. When hitting ⌁ Ctrl+D the environment exits.

--- !bin/yaml/shell.yaml
!print Hello world!
Hello world!

Widi programs

Programming is hard, but it shouldn't be that hard.

Widis are graphical programming tools that have two main operations: parallel and sequential composition. As a formal method they have excellent properties to connect open systems like programs. To work with this system it is necesary to extend its capabilities with programming libraries as widis. As an example core abstractions like bool or maybe can be found in the src/data directory. We grow a self-contained fully-dynamic system with the goal of bootstrapping.

About

Computing with diagrams in modern systems.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%