Edgescript® is a multipurpose programming language. The language is primarily used for adding dynamic behavior to Uninode® Suite components. Read More

The Edgescript® syntax is similar to Swift and Java, but with some improvements and simplifications.

There are currently Edgescript® compilers in Java and Typescript.


Since Edgescript® is mostly used in association with Uninode®, a framework for global type definitions and node identities, it can perform any operation on any type of data. Anything you can do with Uninode®, you can do better with Uninode® plus Edgescript®. Read More

While Uninode® defines edges between nodes, Edgescript® makes the edges parameterized. It uses the same class definitions as Uninode®, but adds methods and evaluation structures. Read More


Edgescript® brings a new perspective on Data-as-Code. Uninode® handles versioning of data, access control and other fundamental concepts, and Edgescript® improves these concepts, and adds solutions from the developer world, like refactoring, reactive behavior, declarative configuration, distributed computing, integration with external services, complex data processing and much more.


Edgescript® comes in many flavors, depending on usage.

  • The expression flavor is used for single-expression behavior.
  • The text flavor is used for adding dynamic behavior to text strings.
  • The statements flavor is used for full-language tasks, including definition of classes and types.
  • The cell flavor is used for defining cells, similar to Jupyter notebooks.
  • The UNQL flavor is used for editing UNQL requests with expression components. Read More

The Edgescript® grammar is defined using a BNF structure with hooks. Read More About Grammar


Edgescript® is used in the Nodelab product, for defining data models, processes and user interfaces. Read More


Edgescript® can be used for many types of configurations and evaluations.
You can view a simple example.


There is a GitHub repository for some core classes and interfaces. Read More



Edgescript® has a number of different types.

  • Edgeclasses are named types with explicitly defined properties and methods.
  • Tuples are collections of named attributes.
  • Function types define function signatures.
  • Enum types define named instances.


A Uniclass is a protocol for communicating property sets and node type relationships. An Edgeclass is an extension of Uniclass for managing methods.

Edgescript® supports multiple inheritance.

An Edgeclass may be abstract.

Read More About Uniclass


Uninode® defines semantic node relations, using edges, defined by Uniclass properties. In a sense, Edgescript® adds parameterized edges, whose value depends on the parameters.


Closures are methods with an evaluation environment, which can be passed as parameters.

Type Parameters

Type parameters resembles generics, but may contain general type info, like maximum length of strings.


Attributes are compile-time parameters for classes, properties and methods. They use a '@' prefix in the script.


An edgepath is similar to a Swift keypath. It is a reference to a property or method that can be evaluated at a later time, but it is type-checked at compile time.

An edgepath may be resolved to multiple data access points.
For instance, an edgepath with just a class name and no path is resolved to the primary keys of that class, as defined by the 'key' keyword in the class definition.
An edgepath reference to a property with an object value, i.e. not the standard value types like String or Int, is also resolved to the primary keys of that object.


Angular Editor

This is a Edgescript® editor, implemented as an Angular component.


Edgescript® is a registered US trademarks.

Associated domains are edgescript.org, edgescript.com, edgescript.net,