Code Monkey home page Code Monkey logo

hermes's Introduction

Hermes

GitHub package.json version npm GitHub repo size GitHub issues GitHub pull requests

Hermes is a modular framework for node.js to make gRPC APIs.

We follow a documentation first philosophy, with the objective of quality delivery focusing on the developer’s experience.
Hermes is a tool made by devs for all devs, ranging all the way from college work to corporate level projects.

IntroductionContributorsExternal documentation



Table of contents

Introduction

Hermes is a modular framework for node.js based on gRPC that works as a Message Oriented Middleware (MOM) by using the Observable pattern, functioning as the observer between publisher and subscriber communication.

By acting simultaneously as the bridge for publisher and subscriber communication and as the notification handler, Hermes removes the need for a connection with a third party for sending and receiving messages, centralizing and simplifying these functionalities.



Hermes' core features, being fully compatible with gRPC, are:

  • Easy integration
  • Multi-language communication
  • High Performance
  • Trustworthy APIs

Our motivations

Our motivation is to turn coding into a more pleasant experience for the developer by making the process simpler, centralized, and better optimized.

The main premises Hermes was based on are:

  • DX (Development Experience)
  • Security
  • Scalability
  • Optimization

Why should you use Hermes?

Development cost

  • Usually, in the making of an API, you'd need to integrate a variety of different tools. Not with Hermes! What you have is what you need. Hermes' architecture is decoupled, making integrations a whole lot easier. Never again spend your precious time on unnecessarily complicated processes.

Contract automation

  • No need to build manually any machine-to-machine communication. Hermes is fully automated.

Security

  • You are safe with us! Hermes was thought out for security: its security module is programmed with Rust to reduce memory issues and common vulnerabilities. Plus, all communication is encrypted and authenticated with symmetrical signatures.

Compatibility

  • Compatible with ANY systems: desktop, web, mobile, embedded. You are the boss!

Availability

  • Hermes has many functionalities to ensure 24/7 availability for all your needs, including (but not limited to) monitoring, health check, health point, and logging. You will never be left in the dark.

Productivity

  • Hermes will save you time, money, and stress (we all know we need it).

Scalability

  • Hermes has native integration with tools for CI/CD and cluster control. This way, you can automate the build process of gRPC APIs and server applications.
    With only a few clicks, you can scale your application and avoid the dreadful problems of timeout or too many simultaneous users.

Extensibility with native and/or third party tools

  • Think of Hermes not as a marriage but as a "friends with benefits" relationship.
    You'll have a compilation of all features and functionalities needed at your disposal with no strings attached. Operate Hermes by itself or with external assistance alongside it, use it as it is or go crazy with customizations: your experience is what matters.

If you are unhappy after your experience with Hermes, we will give you all your money back! (Obs. We are open source)


Features

  • Authentication
  • Caching
  • Logging
  • Throttling
  • Debouncing
  • Message-broker
  • Health check
  • Health point
  • Protobuf compiler
  • Server-client implementation
  • Server-side streaming

Technologies used

Technologies How we used them Version
TypeScript Sole language used in the structuring of the library, architecture, communication, type checking, and functionality exporting latest version
NodeJs Base language for Hermes latest version
gRPC RPC communication mechanism latest version
ProtoBuf Contract creation mechanism for machine-to-machine communication latest version
RxJs Notification and observer handling tool latest version
Redis Cache management tool latest version
Rust Employed in the writing of the security modules, compilators, multithreading, and memory management latest version
NPM Package and library publishing latest version
GitHub Actions CI/CD pipeline and version monitoring latest version

Architecture


Branch flow


Be a part of our community!

Contributors

We thank these people

  • Andre Junior
  • Cibelli Oliveira
  • Gabriele Jorge
  • Gutem
  • Janaina Centini
  • Marcela Silva
  • Melissa Kilpp

hermes's People

Contributors

rogerinn avatar zorazzy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

zorazzy

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.