escher

module
v0.0.0-...-7782d42 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 7, 2019 License: Apache-2.0

README

Escher in language

Escher: A language for programming in pure metaphors

Escher is a simple syntax for representing generic labeled graphs called circuits, much like XML is a (not-so-simple) syntax for representing generic labeled trees.

Escher graphs can also be interpreted as executable circuits of independent processing units. In this way, Escher circuits (used as code) can manipulate Escher circuits (representing data), thus achieving linguistic uniformity between algorithm and data.

In contrast, the standard language for manipulating XML—JavaScript—being designed after-the-fact, constitutes an altogether unrelated semantic and syntax compared to XML.

The analogy between Escher programs manipulating Escher circuits and JavaScript programs manipulating XML is not co-incidental. The Escher Runtime is, in fact, our proposal for a new “headless browser”, which we sometimes also call the “backend browser”, because with Escher one is able to manipulate entire data centers the way one manipulates the DOM of a webpage.

Escher was designed to enable a new programming paradigm for software that needs to control large heterogenous distributed systems consisting of failing components and connections.

With Escher, one views the entire technology stack of a typical Internet company (backend services, mobile apps, outsourced cloud apps, and so on) within a single program.

Sponsors and credits

Directories

Path Synopsis
a
circuit
Package circuit provides Escher gates for building dynamic cloud applications using the circuit runtime of http://gocircuit.org
Package circuit provides Escher gates for building dynamic cloud applications using the circuit runtime of http://gocircuit.org
index
Package index provides gates for manipulating circuits interpreted as hierarchical indices.
Package index provides gates for manipulating circuits interpreted as hierarchical indices.
io
Package io provides gates for manipulating Go's I/O types.
Package io provides gates for manipulating Go's I/O types.
model
Package model provides a basis of gates for circuit traversal and transformation.
Package model provides a basis of gates for circuit traversal and transformation.
os
text
Package text provides gates for manipulating text.
Package text provides gates for manipulating text.
kit
code.google.com/p/snappy-go/snappy
Package snappy implements the snappy block-based compression format.
Package snappy implements the snappy block-based compression format.
fs
Package fs provides routines for reading Escher circuits from source directories and files.
Package fs provides routines for reading Escher circuits from source directories and files.
github.com/ChimeraCoder/anaconda
Package anaconda provides structs and functions for accessing version 1.1 of the Twitter API.
Package anaconda provides structs and functions for accessing version 1.1 of the Twitter API.
github.com/onsi/ginkgo
Ginkgo is a BDD-style testing framework for Golang The godoc documentation describes Ginkgo's API.
Ginkgo is a BDD-style testing framework for Golang The godoc documentation describes Ginkgo's API.
github.com/onsi/ginkgo/config
Ginkgo accepts a number of configuration options.
Ginkgo accepts a number of configuration options.
github.com/onsi/ginkgo/ginkgo
The Ginkgo CLI The Ginkgo CLI is fully documented [here](http://onsi.github.io/ginkgo/#the_ginkgo_cli) You can also learn more by running: ginkgo help Here are some of the more commonly used commands: To install: go install github.com/onsi/ginkgo/ginkgo To run tests: ginkgo To run tests in all subdirectories: ginkgo -r To run tests in particular packages: ginkgo <flags> /path/to/package /path/to/another/package To pass arguments/flags to your tests: ginkgo <flags> <packages> -- <pass-throughs> To run tests in parallel ginkgo -p this will automatically detect the optimal number of nodes to use.
The Ginkgo CLI The Ginkgo CLI is fully documented [here](http://onsi.github.io/ginkgo/#the_ginkgo_cli) You can also learn more by running: ginkgo help Here are some of the more commonly used commands: To install: go install github.com/onsi/ginkgo/ginkgo To run tests: ginkgo To run tests in all subdirectories: ginkgo -r To run tests in particular packages: ginkgo <flags> /path/to/package /path/to/another/package To pass arguments/flags to your tests: ginkgo <flags> <packages> -- <pass-throughs> To run tests in parallel ginkgo -p this will automatically detect the optimal number of nodes to use.
github.com/onsi/ginkgo/internal/remote
Aggregator is a reporter used by the Ginkgo CLI to aggregate and present parallel test output coherently as tests complete.
Aggregator is a reporter used by the Ginkgo CLI to aggregate and present parallel test output coherently as tests complete.
github.com/onsi/ginkgo/reporters
Ginkgo's Default Reporter A number of command line flags are available to tweak Ginkgo's default output.
Ginkgo's Default Reporter A number of command line flags are available to tweak Ginkgo's default output.
github.com/onsi/gomega
Gomega is the Ginkgo BDD-style testing framework's preferred matcher library.
Gomega is the Ginkgo BDD-style testing framework's preferred matcher library.
github.com/onsi/gomega/format
Gomega's format package pretty-prints objects.
Gomega's format package pretty-prints objects.
github.com/onsi/gomega/gbytes
Package gbytes provides a buffer that supports incrementally detecting input.
Package gbytes provides a buffer that supports incrementally detecting input.
github.com/onsi/gomega/gexec
Package gexec provides support for testing external processes.
Package gexec provides support for testing external processes.
github.com/onsi/gomega/ghttp
Package ghttp supports testing HTTP clients by providing a test server (simply a thin wrapper around httptest's server) that supports registering multiple handlers.
Package ghttp supports testing HTTP clients by providing a test server (simply a thin wrapper around httptest's server) that supports registering multiple handlers.
github.com/onsi/gomega/matchers
Gomega matchers This package implements the Gomega matchers and does not typically need to be imported.
Gomega matchers This package implements the Gomega matchers and does not typically need to be imported.
github.com/syndtr/goleveldb/leveldb
Package leveldb provides implementation of LevelDB key/value database.
Package leveldb provides implementation of LevelDB key/value database.
github.com/syndtr/goleveldb/leveldb/cache
Package cache provides interface and implementation of a cache algorithms.
Package cache provides interface and implementation of a cache algorithms.
github.com/syndtr/goleveldb/leveldb/comparer
Package comparer provides interface and implementation for ordering sets of data.
Package comparer provides interface and implementation for ordering sets of data.
github.com/syndtr/goleveldb/leveldb/filter
Package filter provides interface and implementation of probabilistic data structure.
Package filter provides interface and implementation of probabilistic data structure.
github.com/syndtr/goleveldb/leveldb/iterator
Package iterator provides interface and implementation to traverse over contents of a database.
Package iterator provides interface and implementation to traverse over contents of a database.
github.com/syndtr/goleveldb/leveldb/journal
Package journal reads and writes sequences of journals.
Package journal reads and writes sequences of journals.
github.com/syndtr/goleveldb/leveldb/memdb
Package memdb provides in-memory key/value database implementation.
Package memdb provides in-memory key/value database implementation.
github.com/syndtr/goleveldb/leveldb/opt
Package opt provides sets of options used by LevelDB.
Package opt provides sets of options used by LevelDB.
github.com/syndtr/goleveldb/leveldb/storage
Package storage provides storage abstraction for LevelDB.
Package storage provides storage abstraction for LevelDB.
github.com/syndtr/goleveldb/leveldb/table
Package table allows read and write sorted key/value.
Package table allows read and write sorted key/value.
github.com/syndtr/goleveldb/leveldb/util
Package util provides utilities used throughout leveldb.
Package util provides utilities used throughout leveldb.
io
Package io...
Package io...
plumb
Package plumb provides bits and bobs useful in implementing gates.
Package plumb provides bits and bobs useful in implementing gates.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL