• Stars
    star
    80
  • Rank 390,557 (Top 8 %)
  • Language
    CSS
  • License
    MIT License
  • Created over 9 years ago
  • Updated over 9 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Erlang term explorer. Pastebin type app which displays terms of any complexity straight from your erlang shell in web browser. No external deps (inets only).

Erlang Term Explorer (TX)

This app was created to fill the void in the data visualisation area. And to help you follow "know your data" paradigm. Basically it shows you your data in web browser via webserver listening to localhost.

What does it look like?

Features

  • tx:show(Term) and tx:show(Term, Title)
    • Given an arbitrary term, saves it temporarily and creates an unique URL to it (similar to Pastebin but with faster/manual expiration). Click the URL or copy and open in your web browser (Javascript required).
  • tx:redbug(Spec) and tx:redbug(Spec, Options)
    • If you have Redbug available, then tx will run redbug:start and capture events output, then store it in a regular way as a browsable term.
  • Process and ports are "inspectable", just click one to see.
  • Proplists with printable keys are detected and formatted tidier.
  • Uses only standard Erlang libraries (inets), no external dependencies.

How to begin

Add https://github.com/kvakvs/tx as your application dependency or download it and compile manually. Run your application as usual. When you need to see things, call tx:show(Term). in Erlang console or insert call to tx:show where you need it. URL is returned from tx:show, and Erlang shell will display it. NOTE: return value won't be displayed if you call tx:show in your code.

Application tx will be started automatically and web server will be opened on your first call of tx:show/1. Alternatively run tx manually via: tx:start().. Default port is 20000, and default host is localhost. You can set port to 0 in tx.app.src, to start on random available port.

Example

Simple demo: tx:show(application:which_applications()).

All sorts of terms in one: tx:show([<<123,32,1>>, <<1:1, 3:5, 45:7>>, <<"test\ttest">>, 123, 123.321, make_ref(), self(), erlang:ports(), fun()->ok end, {fun erlang:ports/0, 'test', "test"}, [{test, value1}, {fgsfds, 1000}], [1,2,3|{4, [5|test]}]]).

R17 maps example: tx:show(#{k1 => "test", k2 => 'test', k3 => 123, k4 => <<"test">>}).

TODO

Possible things to add of improve

  • Support compact display of value-only tuples and lists (multiple values per line)
  • ? Backend could recognize record definitions and supply field information to frontend
  • Paste term from clipboard
  • Implement automatic expiration (cleanup loop on timer)
  • Toolbox for External Term Format: encode, decode, compress, view in hex etc.
  • Unfold the whole thing into introspection tool like tv (table viewer) or observer.

More Repositories

1

ErlangRT

Erlang Replacement Therapy. Another attempt to make Erlang runtime (BEAM emulator) in Rust. Good news: I know what to do. Bad news: I have no clue how to Rust
Rust
576
star
2

beam-wisdoms

Wiki containing pieces of information and knowledge about BEAM Virtual machine (which runs Erlang/OTP and other BEAM-based languages).
526
star
3

hge

HGE 1.9 configured with CMake DirectX9 version, with shaders. The classic 1.8.1. version is in the `master` branch if you ever need that.
CMake
247
star
4

E4VM

A small portable virtual machine that would run Erlang on embedded systems
Erlang
130
star
5

gluonvm1

OUTDATED see https://github.com/kvakvs/ErlangRT, https://github.com/kvakvs/ErlangAoT and https://github.com/kvakvs/E4VM instead -- Gluon BEAM-compatible Erlang Abstract Machine (GLEAM) written in portable C++
C++
65
star
6

Ironclad

A RUSTy fusion of OTP lib/dialyzer and lib/compiler empowering regular Erlang with type inference
Rust
35
star
7

eia

Erlang in Anger (Russian)
TeX
25
star
8

hge_skel

Skeleton of a side-scroller 2D game for Windows, that uses HGE. Use this to create your very own Super Mario Bros clone. All code is well commented and split into smaller pieces for easier comprehension. Best start for HGE newbies to learn something about game making.
CMake
21
star
9

playable_alpha2

Terraria-like digging sandbox made with Unity3D/C#
C#
15
star
10

ErlangAoT

An ahead-of-time compiler from Erlang (intermediate language) to LLVM IR and a runtime library for linking against it
Erlang
14
star
11

learn_blockchain

A very basic implementation of blockchain in Erlang to demonstrate the main principles. Single simple module.
Erlang
8
star
12

Quokka

Native GUI visualisation tool for Erlang nodes and clusters, accepting streams of data from trace files and live nodes, written in Rust/Dear ImGUI (OpenGL).
Rust
8
star
13

vemdog

Erlang and Elixir VM trace collection and diagraming tool
Erlang
8
star
14

TypedErlang

Experimental stage for Erlang compiler which attempts to transpile Core Erlang AST to C++ source
Erlang
6
star
15

bearded_rs

Dwarf Fortress/Rimworld style world simulator written in Rust with physics, chemistry, body health simulation, mood, room beauty etc. This is a low priority project also expect this to eventually go private.
Rust
5
star
16

BuffomatClassic

Maintained Buffomat addon for Classic World of Warcraft and Classic TBC.
Lua
4
star
17

sourcetrail-erlang

Python script for Sourcetrail which reads compiled Erlang BEAM files and writes debug info into Sourcetrail database
4
star
18

RazeAndPlunder

RnP (and Kittens) is Starcraft Broodwar BWAPI AI, based on Opprimo Bot by Johan Hagelbรคck
C++
4
star
19

BeardedMen

"Bearded Men (and a Fortress)" is a simulation game in a 3D voxel world (renderer: OpenGL/Qt) based on PolyVox engine
C++
2
star
20

jsdefrag_evo

Modernized C++ source of JkDefrag, the opensource disk defragmenter for Windows
C++
1
star
21

WowLogScan

Scans a raw WoW Classic combatlog file for raid preparation (world buffs and consumables)
F#
1
star
22

Skylines-UXLibrary

Cities Skylines: User Experience library (for use by other mods). Provides On-screen help and keyboard hints panel (shared with all other mods using the panel), also keybinds options for use in mods
C#
1
star
23

grade

Tool extracts xref and trace data from Erlang applications to store in Neo4j database or in memory and displays in a nice way
JavaScript
1
star
24

grpc_demo

Minimal example of defining a gRPC proto API in Elixir and calling it in the interactive shell
Elixir
1
star
25

beam_bots

UnrealEngine4 (UE4) based game with robots controlled via API. Primarily intended as training exercise for students who learn programming.
C++
1
star