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:
- distage – Transparent and debuggable Dependency Injection framework for Pure FP Scala,
- logstage – Automatic structural logs from Scala string interpolations,
- 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,
- 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)
- 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
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
Example projects:
Support Chats:
nix
must be installed and available.
./build.sh release