Retour au classement

koudelka/visualixir

CSS

A process/message visualizer for BEAM nodes.💪👁

elixirvisualizerbeamerlang
Croissance des étoiles
Étoiles
1.3k
Forks
46
Croissance hebdomadaire
Issues
10
5001k
nov. 2015mai 2019déc. 2022juil. 2026
Artefactsnpmnpm install visualixir
README

Visualixir

Visualixir is a toy visualizer for BEAM nodes, written in Elixir + Phoenix + d3, with live message sequence charts.

It's largely intended as a teaching tool, to give newer BEAM programmers a look into the process ecosystem living inside their nodes. However, it may prove of some amusement/use to more experienced folks (it's kinda neat to trace iex and the io system).

Huge gifs are worth a thousand words:

Cluster Select Cluster Tour

Msg Seq Msg Seq 2

Getting Going

  1. Clone this repository.
  2. Compile: mix deps.get && mix compile && cd assets && npm install && cd -
  3. Start 'er up: elixir --sname visualixir -S mix phx.server
  4. Navigate to the GUI

If you want to visualize other BEAM nodes, you'll need to start them up with the --sname <unique_name_here> option.

I suggest you use Chrome for Visualixir, Safari and Firefox's SVG performance seems to be lacking. :(

There are a couple example modules included, SingleNodePingPong and MultiNodePingPong. Additionally, there's a Cluster module to start up additional :slave nodes.

Usage

Selecting Nodes

On the upper left of the terrible GUI is a list of nodes that Visualixir curently knows about, including itself. You can click on a node's name to visualize it, or you can add a new node by entering it in the text box.

Moving Around

Drag the background to pan around.

Move processes around and pin them down by dragging and dropping. To un-pin, double click.

Zoom by scrolling (mousewheel or two-finger swipe).

Message Tracing

Option-dragging (alt-dragging), will open a new "conversation", you can drop a set of pids into the upper left box to start tracing, you should see messages they send/receive in the adjoining box. Its outline will change to red to remind you that you're tracing it. You can click the Stop Msg Tracing button to halt all message tracing.

The live message sequence charts have a configurable fade time, but there's no GUI for it yet, see web/static/js/message_sequence.js

The charting library is here, and it'd love some pull requests. <3

Warning

Do not run Visualixir on production nodes, seriously. I've tried to make it somewhat safe, but I suspect you can get into some bad message-tracing scenarios that'll compromise your node.

Caveats

This a prototype, obviously, the code is a steaming pile of garbage. Visualixir is largely intended to be a playground for screwing around with visualization ideas. I'd love to see what folks come up with, PR's are gladly accepted! 💕 (the GUI needs a lot of help)

Dépôts similaires
anoma/anoma

Reference implementation of Anoma

ElixirMIT Licensecryptographyblockchain
anoma.net
33.7k4.1k
plausible/analytics

Open source, privacy-first web analytics. Lightweight, cookie-free Google Analytics alternative. Self-hosted or cloud.

ElixirGNU Affero General Public License v3.0analyticsprivacy
plausible.io
27.9k1.7k
asdf-vm/asdf

Extendable version manager with support for Ruby, Node.js, Elixir, Erlang & more

GoGo ModulesMIT Licenseversion-managerruby
asdf-vm.com
25.5k929
phoenixframework/phoenix

Peace of mind from prototype to production

ElixirMIT Licenseelixirweb-framework
phoenixframework.org
23.1k3.1k
electric-sql/electric

The agent platform built on sync.

TypeScriptnpmApache License 2.0elixirpostgres
electric.ax
10.3k349
lk-geimfari/awesomo

Cool open source projects. Choose your project and get involved in Open Source development now.

GoGo ModulesCreative Commons Zero v1.0 Universalawesomeocaml
9.9k690
taskforcesh/bullmq

BullMQ - Message Queue and Batch processing for NodeJS, Python, Elixir and PHP based on Redis

TypeScriptnpmMIT Licensebackground-jobsnodejs
bullmq.io
9.2k655
benawad/dogehouse

Taking voice conversations to the moon 🚀

TypeScriptnpmMIT Licenseelixirreact
dogehouse.tv
9k1.4k
firezone/firezone

Enterprise-ready zero-trust access platform built on WireGuard®.

ElixirApache License 2.0cloudvpn
firezone.dev
8.7k426
xberg-io/xberg

A polyglot document intelligence framework with a Rust core. Extract text, metadata, images, and structured information from PDFs, Office documents, images, and 97+ formats. Available for Rust, Python, Ruby, Java, Go, PHP, Elixir, C#, R, C, TypeScript (Node/Bun/Wasm/Deno)- or use via CLI, REST API, or MCP server.

Rustcrates.ioMIT Licensetext-extractiondocument-intelligence
docs.xberg.io
8.7k525
supabase/realtime

Broadcast, Presence, and Postgres Changes via WebSockets

ElixirApache License 2.0elixirpostgres
supabase.com/realtime
7.6k451
oldratlee/translations

🐼 Chinese translations for classic software development resources

Othertranslationchinese-translation
github.com/oldratlee/translations
6.9k1.5k