Created
February 1, 2023 23:59
-
-
Save Totktonada/f074ee33723d3adb799e7f82fc15683f to your computer and use it in GitHub Desktop.
tarantool built-in modules dependencies
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!-- | |
| Based on https://github.com/vasturiano/3d-force-graph/blob/master/example/text-nodes/index.html | |
| The data is generated from tarantool sources using the following one-liner: | |
| (printf '{'; find src/lua src/box/lua -name '*.lua' | while read f; do fgrep -H 'require(' "${f}" | grep -v '\.lua: *--\|/help_en_US.lua'; done | sed -e 's@src/\(box/\)\?lua/\([^.]\+\).lua:@\2 @' -e 's@^\([^ ]\+\) .*require(["'\'']\([^"'\'']\+\)["'\'']).*@+\1 \2@' | grep '^+' | sed 's@^+@@' | sed 's/^init /tarantool /' | sort -u >data.txt; printf '"nodes": ['; cat data.txt | tr ' ' '\n' | sort -u | awk '{ print ",{\"id\": \""$1"\"}"}'; printf '], "links": ['; cat data.txt | awk '{ print ",{\"source\": \""$1"\", \"target\": \""$2"\"}" }'; printf ']}') | sed -e 's@"nodes": \[,{@"nodes": [{@' -e 's@"links": \[,{@"links": [{@' | jq > dependencies.json; rm data.txt | |
| --> | |
| <html> | |
| <head> | |
| <style> body { margin: 0; } </style> | |
| <script src="//unpkg.com/three"></script> | |
| <script src="//unpkg.com/three-spritetext"></script> | |
| <script src="//unpkg.com/3d-force-graph"></script> | |
| </head> | |
| <body> | |
| <div id="3d-graph"></div> | |
| <script> | |
| const Graph = ForceGraph3D() | |
| (document.getElementById('3d-graph')) | |
| .graphData( | |
| { | |
| "nodes": [ | |
| { | |
| "id": "argparse" | |
| }, | |
| { | |
| "id": "bit" | |
| }, | |
| { | |
| "id": "box" | |
| }, | |
| { | |
| "id": "buffer" | |
| }, | |
| { | |
| "id": "clock" | |
| }, | |
| { | |
| "id": "compat" | |
| }, | |
| { | |
| "id": "console" | |
| }, | |
| { | |
| "id": "console.lib" | |
| }, | |
| { | |
| "id": "crc32.internal" | |
| }, | |
| { | |
| "id": "crypto" | |
| }, | |
| { | |
| "id": "csv" | |
| }, | |
| { | |
| "id": "datetime" | |
| }, | |
| { | |
| "id": "debug" | |
| }, | |
| { | |
| "id": "digest" | |
| }, | |
| { | |
| "id": "digest.lib" | |
| }, | |
| { | |
| "id": "env" | |
| }, | |
| { | |
| "id": "errno" | |
| }, | |
| { | |
| "id": "errno.lib" | |
| }, | |
| { | |
| "id": "error" | |
| }, | |
| { | |
| "id": "feedback_daemon" | |
| }, | |
| { | |
| "id": "ffi" | |
| }, | |
| { | |
| "id": "fiber" | |
| }, | |
| { | |
| "id": "fio" | |
| }, | |
| { | |
| "id": "fun" | |
| }, | |
| { | |
| "id": "help" | |
| }, | |
| { | |
| "id": "help.en_US" | |
| }, | |
| { | |
| "id": "httpc" | |
| }, | |
| { | |
| "id": "http.client" | |
| }, | |
| { | |
| "id": "http.client.lib" | |
| }, | |
| { | |
| "id": "iconv" | |
| }, | |
| { | |
| "id": "internal.compat" | |
| }, | |
| { | |
| "id": "internal.compat.lib" | |
| }, | |
| { | |
| "id": "internal.trigger" | |
| }, | |
| { | |
| "id": "json" | |
| }, | |
| { | |
| "id": "key_def" | |
| }, | |
| { | |
| "id": "load_cfg" | |
| }, | |
| { | |
| "id": "log" | |
| }, | |
| { | |
| "id": "log.get_callstack" | |
| }, | |
| { | |
| "id": "math" | |
| }, | |
| { | |
| "id": "merger" | |
| }, | |
| { | |
| "id": "msgpack" | |
| }, | |
| { | |
| "id": "msgpackffi" | |
| }, | |
| { | |
| "id": "net.box" | |
| }, | |
| { | |
| "id": "net_box" | |
| }, | |
| { | |
| "id": "net.box.lib" | |
| }, | |
| { | |
| "id": "os" | |
| }, | |
| { | |
| "id": "pwd" | |
| }, | |
| { | |
| "id": "schema" | |
| }, | |
| { | |
| "id": "socket" | |
| }, | |
| { | |
| "id": "socket.lib" | |
| }, | |
| { | |
| "id": "string" | |
| }, | |
| { | |
| "id": "swim" | |
| }, | |
| { | |
| "id": "swim.lib" | |
| }, | |
| { | |
| "id": "table" | |
| }, | |
| { | |
| "id": "table.clear" | |
| }, | |
| { | |
| "id": "table.new" | |
| }, | |
| { | |
| "id": "tap" | |
| }, | |
| { | |
| "id": "tarantool" | |
| }, | |
| { | |
| "id": "timezones" | |
| }, | |
| { | |
| "id": "title" | |
| }, | |
| { | |
| "id": "trigger" | |
| }, | |
| { | |
| "id": "tuple" | |
| }, | |
| { | |
| "id": "upgrade" | |
| }, | |
| { | |
| "id": "uri" | |
| }, | |
| { | |
| "id": "uri.lib" | |
| }, | |
| { | |
| "id": "utf8" | |
| }, | |
| { | |
| "id": "uuid" | |
| }, | |
| { | |
| "id": "xlog" | |
| }, | |
| { | |
| "id": "xlog.lib" | |
| }, | |
| { | |
| "id": "yaml" | |
| } | |
| ], | |
| "links": [ | |
| { | |
| "source": "argparse", | |
| "target": "fun" | |
| }, | |
| { | |
| "source": "buffer", | |
| "target": "ffi" | |
| }, | |
| { | |
| "source": "clock", | |
| "target": "ffi" | |
| }, | |
| { | |
| "source": "compat", | |
| "target": "internal.compat.lib" | |
| }, | |
| { | |
| "source": "compat", | |
| "target": "json" | |
| }, | |
| { | |
| "source": "compat", | |
| "target": "tarantool" | |
| }, | |
| { | |
| "source": "compat", | |
| "target": "yaml" | |
| }, | |
| { | |
| "source": "console", | |
| "target": "console" | |
| }, | |
| { | |
| "source": "console", | |
| "target": "console.lib" | |
| }, | |
| { | |
| "source": "console", | |
| "target": "errno" | |
| }, | |
| { | |
| "source": "console", | |
| "target": "ffi" | |
| }, | |
| { | |
| "source": "console", | |
| "target": "fiber" | |
| }, | |
| { | |
| "source": "console", | |
| "target": "help" | |
| }, | |
| { | |
| "source": "console", | |
| "target": "log" | |
| }, | |
| { | |
| "source": "console", | |
| "target": "net.box" | |
| }, | |
| { | |
| "source": "console", | |
| "target": "socket" | |
| }, | |
| { | |
| "source": "console", | |
| "target": "uri" | |
| }, | |
| { | |
| "source": "console", | |
| "target": "yaml" | |
| }, | |
| { | |
| "source": "crypto", | |
| "target": "buffer" | |
| }, | |
| { | |
| "source": "crypto", | |
| "target": "ffi" | |
| }, | |
| { | |
| "source": "csv", | |
| "target": "ffi" | |
| }, | |
| { | |
| "source": "csv", | |
| "target": "log" | |
| }, | |
| { | |
| "source": "datetime", | |
| "target": "buffer" | |
| }, | |
| { | |
| "source": "datetime", | |
| "target": "ffi" | |
| }, | |
| { | |
| "source": "datetime", | |
| "target": "timezones" | |
| }, | |
| { | |
| "source": "debug", | |
| "target": "debug" | |
| }, | |
| { | |
| "source": "digest", | |
| "target": "bit" | |
| }, | |
| { | |
| "source": "digest", | |
| "target": "buffer" | |
| }, | |
| { | |
| "source": "digest", | |
| "target": "crc32.internal" | |
| }, | |
| { | |
| "source": "digest", | |
| "target": "crypto" | |
| }, | |
| { | |
| "source": "digest", | |
| "target": "digest.lib" | |
| }, | |
| { | |
| "source": "digest", | |
| "target": "ffi" | |
| }, | |
| { | |
| "source": "env", | |
| "target": "errno" | |
| }, | |
| { | |
| "source": "env", | |
| "target": "ffi" | |
| }, | |
| { | |
| "source": "env", | |
| "target": "os" | |
| }, | |
| { | |
| "source": "errno", | |
| "target": "errno.lib" | |
| }, | |
| { | |
| "source": "errno", | |
| "target": "ffi" | |
| }, | |
| { | |
| "source": "error", | |
| "target": "ffi" | |
| }, | |
| { | |
| "source": "error", | |
| "target": "msgpack" | |
| }, | |
| { | |
| "source": "feedback_daemon", | |
| "target": "fiber" | |
| }, | |
| { | |
| "source": "feedback_daemon", | |
| "target": "fio" | |
| }, | |
| { | |
| "source": "feedback_daemon", | |
| "target": "http.client" | |
| }, | |
| { | |
| "source": "feedback_daemon", | |
| "target": "json" | |
| }, | |
| { | |
| "source": "feedback_daemon", | |
| "target": "log" | |
| }, | |
| { | |
| "source": "fiber", | |
| "target": "ffi" | |
| }, | |
| { | |
| "source": "fiber", | |
| "target": "fiber" | |
| }, | |
| { | |
| "source": "fio", | |
| "target": "buffer" | |
| }, | |
| { | |
| "source": "fio", | |
| "target": "errno" | |
| }, | |
| { | |
| "source": "fio", | |
| "target": "ffi" | |
| }, | |
| { | |
| "source": "fio", | |
| "target": "fiber" | |
| }, | |
| { | |
| "source": "fio", | |
| "target": "fio" | |
| }, | |
| { | |
| "source": "help", | |
| "target": "help.en_US" | |
| }, | |
| { | |
| "source": "httpc", | |
| "target": "http.client.lib" | |
| }, | |
| { | |
| "source": "httpc", | |
| "target": "json" | |
| }, | |
| { | |
| "source": "httpc", | |
| "target": "msgpack" | |
| }, | |
| { | |
| "source": "httpc", | |
| "target": "uri" | |
| }, | |
| { | |
| "source": "httpc", | |
| "target": "yaml" | |
| }, | |
| { | |
| "source": "iconv", | |
| "target": "buffer" | |
| }, | |
| { | |
| "source": "iconv", | |
| "target": "errno" | |
| }, | |
| { | |
| "source": "iconv", | |
| "target": "ffi" | |
| }, | |
| { | |
| "source": "key_def", | |
| "target": "ffi" | |
| }, | |
| { | |
| "source": "key_def", | |
| "target": "key_def" | |
| }, | |
| { | |
| "source": "load_cfg", | |
| "target": "box" | |
| }, | |
| { | |
| "source": "load_cfg", | |
| "target": "fiber" | |
| }, | |
| { | |
| "source": "load_cfg", | |
| "target": "fio" | |
| }, | |
| { | |
| "source": "load_cfg", | |
| "target": "json" | |
| }, | |
| { | |
| "source": "load_cfg", | |
| "target": "log" | |
| }, | |
| { | |
| "source": "load_cfg", | |
| "target": "math" | |
| }, | |
| { | |
| "source": "load_cfg", | |
| "target": "title" | |
| }, | |
| { | |
| "source": "load_cfg", | |
| "target": "uri" | |
| }, | |
| { | |
| "source": "log", | |
| "target": "clock" | |
| }, | |
| { | |
| "source": "log", | |
| "target": "debug" | |
| }, | |
| { | |
| "source": "log", | |
| "target": "ffi" | |
| }, | |
| { | |
| "source": "log", | |
| "target": "json" | |
| }, | |
| { | |
| "source": "merger", | |
| "target": "ffi" | |
| }, | |
| { | |
| "source": "merger", | |
| "target": "fun" | |
| }, | |
| { | |
| "source": "merger", | |
| "target": "merger" | |
| }, | |
| { | |
| "source": "msgpackffi", | |
| "target": "buffer" | |
| }, | |
| { | |
| "source": "msgpackffi", | |
| "target": "ffi" | |
| }, | |
| { | |
| "source": "msgpackffi", | |
| "target": "msgpack" | |
| }, | |
| { | |
| "source": "net_box", | |
| "target": "box" | |
| }, | |
| { | |
| "source": "net_box", | |
| "target": "console" | |
| }, | |
| { | |
| "source": "net_box", | |
| "target": "ffi" | |
| }, | |
| { | |
| "source": "net_box", | |
| "target": "fiber" | |
| }, | |
| { | |
| "source": "net_box", | |
| "target": "internal.trigger" | |
| }, | |
| { | |
| "source": "net_box", | |
| "target": "log" | |
| }, | |
| { | |
| "source": "net_box", | |
| "target": "msgpack" | |
| }, | |
| { | |
| "source": "net_box", | |
| "target": "net.box.lib" | |
| }, | |
| { | |
| "source": "net_box", | |
| "target": "uri" | |
| }, | |
| { | |
| "source": "pwd", | |
| "target": "errno" | |
| }, | |
| { | |
| "source": "pwd", | |
| "target": "ffi" | |
| }, | |
| { | |
| "source": "schema", | |
| "target": "buffer" | |
| }, | |
| { | |
| "source": "schema", | |
| "target": "ffi" | |
| }, | |
| { | |
| "source": "schema", | |
| "target": "fiber" | |
| }, | |
| { | |
| "source": "schema", | |
| "target": "fun" | |
| }, | |
| { | |
| "source": "schema", | |
| "target": "json" | |
| }, | |
| { | |
| "source": "schema", | |
| "target": "log" | |
| }, | |
| { | |
| "source": "schema", | |
| "target": "msgpack" | |
| }, | |
| { | |
| "source": "schema", | |
| "target": "utf8" | |
| }, | |
| { | |
| "source": "socket", | |
| "target": "buffer" | |
| }, | |
| { | |
| "source": "socket", | |
| "target": "errno" | |
| }, | |
| { | |
| "source": "socket", | |
| "target": "ffi" | |
| }, | |
| { | |
| "source": "socket", | |
| "target": "fiber" | |
| }, | |
| { | |
| "source": "socket", | |
| "target": "fio" | |
| }, | |
| { | |
| "source": "socket", | |
| "target": "log" | |
| }, | |
| { | |
| "source": "socket", | |
| "target": "socket.lib" | |
| }, | |
| { | |
| "source": "string", | |
| "target": "buffer" | |
| }, | |
| { | |
| "source": "string", | |
| "target": "ffi" | |
| }, | |
| { | |
| "source": "string", | |
| "target": "string" | |
| }, | |
| { | |
| "source": "swim", | |
| "target": "buffer" | |
| }, | |
| { | |
| "source": "swim", | |
| "target": "crypto" | |
| }, | |
| { | |
| "source": "swim", | |
| "target": "ffi" | |
| }, | |
| { | |
| "source": "swim", | |
| "target": "fiber" | |
| }, | |
| { | |
| "source": "swim", | |
| "target": "msgpack" | |
| }, | |
| { | |
| "source": "swim", | |
| "target": "swim.lib" | |
| }, | |
| { | |
| "source": "swim", | |
| "target": "uuid" | |
| }, | |
| { | |
| "source": "table", | |
| "target": "table" | |
| }, | |
| { | |
| "source": "table", | |
| "target": "table.clear" | |
| }, | |
| { | |
| "source": "table", | |
| "target": "table.new" | |
| }, | |
| { | |
| "source": "tap", | |
| "target": "ffi" | |
| }, | |
| { | |
| "source": "tap", | |
| "target": "yaml" | |
| }, | |
| { | |
| "source": "tarantool", | |
| "target": "ffi" | |
| }, | |
| { | |
| "source": "tarantool", | |
| "target": "fiber" | |
| }, | |
| { | |
| "source": "tarantool", | |
| "target": "fio" | |
| }, | |
| { | |
| "source": "tarantool", | |
| "target": "internal.compat" | |
| }, | |
| { | |
| "source": "tarantool", | |
| "target": "log" | |
| }, | |
| { | |
| "source": "tarantool", | |
| "target": "log.get_callstack" | |
| }, | |
| { | |
| "source": "title", | |
| "target": "ffi" | |
| }, | |
| { | |
| "source": "trigger", | |
| "target": "fun" | |
| }, | |
| { | |
| "source": "tuple", | |
| "target": "buffer" | |
| }, | |
| { | |
| "source": "tuple", | |
| "target": "ffi" | |
| }, | |
| { | |
| "source": "tuple", | |
| "target": "fun" | |
| }, | |
| { | |
| "source": "tuple", | |
| "target": "msgpackffi" | |
| }, | |
| { | |
| "source": "upgrade", | |
| "target": "bit" | |
| }, | |
| { | |
| "source": "upgrade", | |
| "target": "ffi" | |
| }, | |
| { | |
| "source": "upgrade", | |
| "target": "fio" | |
| }, | |
| { | |
| "source": "upgrade", | |
| "target": "json" | |
| }, | |
| { | |
| "source": "upgrade", | |
| "target": "log" | |
| }, | |
| { | |
| "source": "upgrade", | |
| "target": "xlog" | |
| }, | |
| { | |
| "source": "uri", | |
| "target": "buffer" | |
| }, | |
| { | |
| "source": "uri", | |
| "target": "ffi" | |
| }, | |
| { | |
| "source": "uri", | |
| "target": "uri.lib" | |
| }, | |
| { | |
| "source": "uuid", | |
| "target": "buffer" | |
| }, | |
| { | |
| "source": "uuid", | |
| "target": "ffi" | |
| }, | |
| { | |
| "source": "xlog", | |
| "target": "fun" | |
| }, | |
| { | |
| "source": "xlog", | |
| "target": "xlog.lib" | |
| } | |
| ] | |
| } | |
| ) | |
| .nodeAutoColorBy('group') | |
| .nodeThreeObject(node => { | |
| const sprite = new SpriteText(node.id); | |
| sprite.material.depthWrite = false; // make sprite background transparent | |
| sprite.color = node.color; | |
| sprite.textHeight = 8; | |
| return sprite; | |
| }); | |
| // Spread nodes a little wider | |
| Graph.d3Force('charge').strength(-120); | |
| </script> | |
| </body> | |
| </html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment