Overview

Edgescript®

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.

Uninode®

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

Data-as-Code

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.

Flavors

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

Nodelab

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

Examples

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

Repository

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

Features

Types

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.

Edgeclass

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

Methods

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

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

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

Edgepath

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.

Editor

Angular Editor

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

IP

Edgescript® is a registered US trademarks.

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