Giter VIP home page Giter VIP logo

sduwys / dubbo-js Goto Github PK

View Code? Open in Web Editor NEW

This project forked from apache/dubbo-js

1.0 0.0 0.0 40.26 MB

The Typescript implementation of Apache Dubbo. An RPC and microservice framework for Node.js and Web development.

Home Page: https://dubbo.apache.org/

License: Apache License 2.0

Shell 0.07% JavaScript 4.76% Java 0.07% Go 1.61% TypeScript 92.31% CSS 0.14% Makefile 1.01% HTML 0.03%

dubbo-js's Introduction

Apache Dubbo for ECMAScript

License Build

Apache Dubbo is an easy-to-use Web and RPC framework that provides different language implementations(Java, Go, Rust, Node.js, Javascript) for communication, service discovery, traffic management, observability, security, tools, and best practices for building enterprise-ready microservices.

Dubbo-js is the TypeScript implementation of Dubbo triple protocol (a fully gRPC compatible and http friendly protocol), which can be used for Node.js and web application development. With dubbo-js, you can easily build applications working on browser and frontend that can communicate with backend services through http-based protocol.

arc

Get Started

The following two demos will guide you on how to create Node.js backend and web applications using dubbo-js.

You can call backend Dubbo services with type-safe APIs:

const resp = await client.say({sentence: "Hello, Dubbo."});
console.log(resp);

Or, you can curl them if you want:

curl \
 --header 'Content-Type: application/json' \
 --data '{"sentence": "Hello World"}' \
 http://localhost:8080/apache.dubbo.demo.example.v1.ExampleService/Say

Get started on the web

Follow this guide to learn how to develop web applications that can access backend Dubbo services and running on browser.

We support all modern web browsers that implement the widely available fetch API and the Encoding API.

Get started on Node.js

Follow this guide here to learn how to develop and spin up a backend Dubbo service in Node.js, and call it from cURL, the web browser, or a Dubbo client in your terminal.

In addition, Dubbo integrates middlewares such as express, fastify, and next, making it easier for users to build a Dubbo distributed service framework using Node.js.

Service Governance features

Besides rpc protocol, we plan to provide dubbo-js rich service governance features so it can work seamlessly with other microservice architecture.

The features lsited below are still under development, we will update each feature's status once ready.

  • ๐Ÿšง Service Discovery:

Nacos, Zookeeper, Kubernetes, etc.

  • ๐Ÿšง Load Balance:

Random, RoundRobin, LeastActive, ConsistentHash, etc.

  • ๐Ÿšง Traffic Routing: Traffic split, Circuit breaking, Canary release, etc.

  • ๐Ÿšง Filter: Token, AccessLog, Rate limiting, etc.

  • ๐Ÿšง Metrics: Prometheus

  • ๐Ÿšง Tracing: Jaeger, Zipkin

How to contribute

Please check CONTRIBUTING for how to contribute to this project.

Connect us

Search Dingding group number and join us: 27690019068

Credit

This project is based on bufbuild/connect-es, an open-source project released under Apache License v2. Comparing to connect-es, dubbo-js removed the unused grpc-web and connect protocol, added support for Dubbo protocol, no-idl programming api and many service governance features.

We have a announcement in our LICENSE file and keep all license headers of files come from connect-es unchanged.

dubbo-js's People

Contributors

hufeng avatar jianyi-gronk avatar creasy2010 avatar godkun avatar chickenlj avatar ralf0131 avatar sunchuanleihit avatar hsiaosiyuan0 avatar binlaniua avatar songjiachao avatar dependabot[bot] avatar fengwei5280 avatar atarismio avatar zhaoleipeng avatar albumenj avatar zhcsyncer avatar crab666 avatar jasonjoo2010 avatar jackyangkunkun avatar ohiamfine avatar luckyyyyy avatar realbillwong avatar chaoshimeng avatar dsky1990 avatar lmikoto avatar wushanchao avatar

Stargazers

Yongshuai Wang avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.