Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
hyperbahn
Advanced tools
Service discovery and routing for large-scale microservice operations
#hyperbahn
on FreenodeHyperbahn enables service discovery and routing for large-scale systems comprised of many microservices. Distributed, fault tolerant, and highly available, it lets one service find and communicate with others simply and reliably without having to know where those services run.
Hyperbahn is an overlay network of routers designed to support the TChannel RPC protocol. Hyperbahn itself is based on Ringpop. Its router nodes dynamically converge and gossip known services onto a consistent hash ring topology, forming a mesh of services that can send requests to each other without human intervention or knowledge of specific ports and addresses.
Hyperbahn and TChannel clients are currently supported in Go, Python, and Node.js.
Whether you're making your service available to others or you're a service consumer, Hyperbahn comes with many features to make application development easier:
Register a service on Hyperbahn in just three steps:
Or use a service over Hyperbahn in only two steps:
Hyperbahn is designed for large-scale microservice operations. However, you might want to develop and test (or just try it out) locally. To get started with Hyperbahn, set up a Hyperbahn cluster on your local machine.
git clone git@github.com:uber/hyperbahn
cd hyperbahn
./hyperbahn-dev.sh
You'll now have a two-node Hyperbahn cluster running. In one of the tmux windows, you should see the health checks of both nodes. Double check that the Hyperbahn cluster is healthy. If not, troubleshoot or report your issue.
To exit, run tmux kill-session -t hyperbahn
in a seperate shell.
The open source quick start template for Node.js (below) will start a "Hello, world!" TChannel app in Node.js that registers with Hyperbahn.
npm install tchannel-gen --global
cd ~/projects
tchannel-gen my-hyperbahn-app "A new hyperbahn app"
cd my-hyperbahn-app
npm install
make start
tcurl -p localhost:9000 my-service MyService::health_v1 -t ./thrift/service.thrift
tcurl -p 127.0.0.1:21300 my-service MyService::health_v1 -t ./thrift/service.thrift
You can tcurl
it directly at localhost:9000
or tcurl
it through
Hyperbahn at 127.0.0.1:21300
. If you're unfamiliar with tcurl
, the
command-line tool to call TChannel servers, learn about it here.
Once a service is available on Hyperbahn, any other service on that Hyperbahn cluster can talk to it.
npm install hyperbahn
git clone git@github.com:uber/hyperbahn
cd hyperbahn
npm install
npm test
FAQs
Service Discovery and Routing
The npm package hyperbahn receives a total of 21 weekly downloads. As such, hyperbahn popularity was classified as not popular.
We found that hyperbahn demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 6 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.