Skip to content

7mind/idealingua-v1

Repository files navigation

Gitter Patreon Build Status License Awesome

Izumi


Izumi


Latest Release Maven Central Sonatype releases Sonatype snapshots Latest version

IdeaLingua RPC/DML

IdeaLingua is an RPC framework & Domain Modeling Language, it’s purpose is to:

  • Share & publish APIs and data models in a common concise format
  • Allow remote calls to services given their public API definitions.
  • Create idiomatic API clients and servers for all programming languages – currently Scala, TypeScript, C# & Go.
  • Support frontend-to-backend and backend-to-frontend calls (ala push notifications, via buzzer definitions)
  • Abstract away details such as the network protocol or the serialization format.
  • Save developers from untyped and brittle REST.

IdeaLingua is a part of the Izumi Project. Izumi (jp. 泉水, spring) is a set of independent libraries and frameworks allowing you to significantly increase productivity of your Scala development.

including the following components:

  1. distage – Transparent and debuggable Dependency Injection framework for Pure FP Scala,
  2. logstage – Automatic structural logs from Scala string interpolations,
  3. idealingua (moved to 7mind/idealingua-v1) – API Definition, Data Modeling and RPC Language, optimized for fast prototyping – like gRPC, but with a human face. Currently generates servers and clients for Go, TypeScript, C# and Scala,
  4. Opinionated SBT plugins (moved to 7mind/sbtgen) – Reduces verbosity of SBT builds and introduces new features – inter-project shared test scopes and BOM plugins (from Maven)
  5. Percept-Plan-Execute-Repeat (PPER) – a pattern that enables modeling very complex domains and orchestrate deadly complex processes a lot easier than you're used to.

VSCode Extension VSCodium Extension

Project Status

Currently this project is in maintanance-only phase. It may be useful, although new features will not be added.

Have a look at Baboon DML

Docs

Example projects:

Support Chats:

Release process

nix must be installed and available.

./build.sh release