项目作者: 7mind

项目描述 :
IdeaLingua RPC for Scala, TypeScript, C#, Go
高级语言: Scala
项目地址: git://github.com/7mind/idealingua-v1.git
创建时间: 2020-02-04T16:17:41Z
项目社区:https://github.com/7mind/idealingua-v1

开源协议:BSD 2-Clause "Simplified" License

下载


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.

  1. ./build.sh release