All Projects → nirum-lang → Nirum

nirum-lang / Nirum

Licence: gpl-3.0
Nirum: IDL compiler and RPC/distributed object framework for microservices

Programming Languages

haskell
3896 projects

Projects that are alternatives of or similar to Nirum

Yarpc Go
A message passing platform for Go
Stars: ✭ 285 (+139.5%)
Mutual labels:  microservices, rpc
Tarsjava
Java language framework rpc source code implementation
Stars: ✭ 321 (+169.75%)
Mutual labels:  microservices, rpc
Go Micro
A pluggable Go framework for distributed systems development
Stars: ✭ 17,350 (+14479.83%)
Mutual labels:  microservices, rpc
Grpc Go
The Go language implementation of gRPC. HTTP/2 based RPC
Stars: ✭ 15,042 (+12540.34%)
Mutual labels:  microservices, rpc
Rpcx
Best microservices framework in Go, like alibaba Dubbo, but with more features, Scale easily. Try it. Test it. If you feel it's better, use it! 𝐉𝐚𝐯𝐚有𝐝𝐮𝐛𝐛𝐨, 𝐆𝐨𝐥𝐚𝐧𝐠有𝐫𝐩𝐜𝐱!
Stars: ✭ 6,516 (+5375.63%)
Mutual labels:  microservices, rpc
Tarsgo
Tarsgo is high performance RPC framework in Golang programing language using the tars protocol. Go has become popular for programming with the rise of containerization technology such as docker, k8s, and etcd. Go's goroutine concurrency mechanism means Go is very suitable for large-scale high-concurrency back-end server program development. The Go language has nearly C/C++ performance and near Python productivity. In Tencent, part of the existing C++ development team has gradually turned into Go developers. Tars, a widely used RPC framework, supports C++, Java, NodeJS, and PHP, and now Go. The combination with Go language has become a general trend. Therefore, in the voice of users, we launched Tarsgo, and we have applied to Tencent map application, YingYongbao application, Internet plus and other projects. Learn more about the whole Tars architecture and design at Introduction.
Stars: ✭ 2,931 (+2363.03%)
Mutual labels:  microservices, rpc
Remoto
Ultra-simple RPC ecosystem designed for right now.
Stars: ✭ 304 (+155.46%)
Mutual labels:  microservices, rpc
Doge
Doge is a high-performance, Python based, open source RPC framework
Stars: ✭ 144 (+21.01%)
Mutual labels:  microservices, rpc
Phpboot
☕️ 🚀 tiny & fast PHP framework for building Microservices/RESTful APIs, with useful features: IOC, Hook, ORM, RPC, Swagger, Annotation, Parameters binding, Validation, etc.
Stars: ✭ 638 (+436.13%)
Mutual labels:  microservices, rpc
Typhon
A wrapper around Go's net/http to provide safety and convenience. At Monzo, Typhon forms the basis of most clients and servers in our microservices platform.
Stars: ✭ 580 (+387.39%)
Mutual labels:  microservices, rpc
Xian
reactive风格的微服务框架
Stars: ✭ 196 (+64.71%)
Mutual labels:  microservices, rpc
Remit
RabbitMQ-backed microservices supporting RPC, pubsub, automatic service discovery and scaling with no code changes.
Stars: ✭ 24 (-79.83%)
Mutual labels:  microservices, rpc
Go Micro Boilerplate
The boilerplate of the GoLang application with a clear microservices architecture.
Stars: ✭ 147 (+23.53%)
Mutual labels:  microservices, rpc
Tarscpp
C++ language framework rpc source code implementation
Stars: ✭ 261 (+119.33%)
Mutual labels:  microservices, rpc
Rpcx Gateway
http gateway for rpcx services. Clients in any programming languages can call them
Stars: ✭ 145 (+21.85%)
Mutual labels:  microservices, rpc
Armeria
Your go-to microservice framework for any situation, from the creator of Netty et al. You can build any type of microservice leveraging your favorite technologies, including gRPC, Thrift, Kotlin, Retrofit, Reactive Streams, Spring Boot and Dropwizard.
Stars: ✭ 3,392 (+2750.42%)
Mutual labels:  microservices, rpc
Raptor
拍拍贷微服务rpc框架
Stars: ✭ 139 (+16.81%)
Mutual labels:  microservices, rpc
Go Api Boilerplate
Go Server/API boilerplate using best practices DDD CQRS ES gRPC
Stars: ✭ 373 (+213.45%)
Mutual labels:  microservices, rpc
Servicetalk
A networking framework that evolves with your application
Stars: ✭ 656 (+451.26%)
Mutual labels:  microservices, rpc
Whatsmars
Java生态研究(Spring Boot + Redis + Dubbo + RocketMQ + Elasticsearch)🔥🔥🔥🔥🔥
Stars: ✭ 1,389 (+1067.23%)
Mutual labels:  microservices, rpc

Nirum

The latest release on GitHub Docker automated build Build status on Linux and macOS (Travis CI) Build status on Windows (AppVeyor) Test coverage (codecov) Total lines of code Gitter

Nirum is an IDL compiler and RPC/distributed object framework for microservices, built on top of the modern Web server technologies such as RESTful HTTP and JSON.

You can find how the language looks like from source codes in the examples/ directory.

Note that its design is highly unstable and could be changed. Also the feature set is incomplete yet.

Installation

The Nirum compiler works on the most major platforms like Linux, macOS, and Windows. We provide the prebuilt executable binaries for these three platforms.

Released builds

You can download executable binaries for Linux (x86_64), macOS (x86_64), or Windows (x64) from the latest release note. You should give it appropriate permissions (e.g., +x) depending on your platform.

If you look for a previous release, see the list of all releases.

We provide official Docker images as well. You can check the list of released tags. Note that latest is for a nightly build which is unstable (see below).

Nightly builds

Since Nirum is still changing by leaps and bounds, you could want to try its bleeding edge. We provide nightly builds for this purpose.

Although we call it "nightly build," technically it is not built every night, but done every merge commit.

Getting started

In order to compile a Nirum package (examples/) to a Python package:

$ mkdir out/  # directory to place generated Python files
$ nirum -t python -o out/ examples/

For more information, use --help option:

$ nirum --help
Nirum: The IDL compiler and RPC/distributed object framework

Usage: nirum [-v|--version] (-o|--output-dir DIR) (-t|--target TARGET) DIR
  Nirum compiler 0.5.1

Available options:
  -h,--help                Show this help text
  -v,--version             Show version
  -o,--output-dir DIR      Output directory
  -t,--target TARGET       Target language name. Available: docs, python
  DIR                      Package directory

There is a step-by-step tutorial as well.

Building

If you already installed Haskell Stack, you can build the project in the same way to build other Haskell softwares:

$ stack build

You can run the test suite of Nirum:

$ stack test  # unit test for compiler
$ ./lint.sh   # style lint

For details, please read the contribution guide.

Related projects & tools

See also the list of Nirum-related projects on GitHub. Have you kicked off a new project related to Nirum? Please add nirum topic to your project on GitHub!

Language runtimes

Editor supports

Etymology

니름 (IPA: /niɾɯm/; nireum) is a sort of telepathy in the fictional world of The Bird That Drinks Tears (눈물을 마시는 새 Nunmureul masineun sae) by Lee Yeongdo (이영도).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].