ruby_wasm 2.5.0.pre.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.clang-format +8 -0
- data/CONTRIBUTING.md +124 -0
- data/Cargo.lock +2452 -0
- data/Cargo.toml +7 -0
- data/Gemfile +17 -0
- data/LICENSE +21 -0
- data/NOTICE +1293 -0
- data/README.md +161 -0
- data/Rakefile +164 -0
- data/Steepfile +24 -0
- data/benchmarks/vm_deep_call.rb +55 -0
- data/builders/wasm32-unknown-emscripten/Dockerfile +43 -0
- data/builders/wasm32-unknown-emscripten/entrypoint.sh +7 -0
- data/builders/wasm32-unknown-wasi/Dockerfile +47 -0
- data/builders/wasm32-unknown-wasi/entrypoint.sh +7 -0
- data/docs/api.md +2 -0
- data/docs/cheat_sheet.md +195 -0
- data/docs/faq.md +25 -0
- data/exe/rbwasm +7 -0
- data/ext/.gitignore +2 -0
- data/ext/README.md +11 -0
- data/ext/extinit.c.erb +32 -0
- data/ext/ruby_wasm/Cargo.toml +17 -0
- data/ext/ruby_wasm/extconf.rb +6 -0
- data/ext/ruby_wasm/src/lib.rs +69 -0
- data/lib/ruby_wasm/build/build_params.rb +3 -0
- data/lib/ruby_wasm/build/downloader.rb +18 -0
- data/lib/ruby_wasm/build/executor.rb +187 -0
- data/lib/ruby_wasm/build/product/baseruby.rb +37 -0
- data/lib/ruby_wasm/build/product/crossruby.rb +326 -0
- data/lib/ruby_wasm/build/product/libyaml.rb +68 -0
- data/lib/ruby_wasm/build/product/openssl.rb +88 -0
- data/lib/ruby_wasm/build/product/product.rb +39 -0
- data/lib/ruby_wasm/build/product/ruby_source.rb +103 -0
- data/lib/ruby_wasm/build/product/wasi_vfs.rb +83 -0
- data/lib/ruby_wasm/build/product/zlib.rb +68 -0
- data/lib/ruby_wasm/build/product.rb +8 -0
- data/lib/ruby_wasm/build/toolchain/wit_bindgen.rb +31 -0
- data/lib/ruby_wasm/build/toolchain.rb +193 -0
- data/lib/ruby_wasm/build.rb +88 -0
- data/lib/ruby_wasm/cli.rb +195 -0
- data/lib/ruby_wasm/packager/core.rb +156 -0
- data/lib/ruby_wasm/packager/file_system.rb +157 -0
- data/lib/ruby_wasm/packager.rb +159 -0
- data/lib/ruby_wasm/rake_task.rb +58 -0
- data/lib/ruby_wasm/util.rb +15 -0
- data/lib/ruby_wasm/version.rb +3 -0
- data/lib/ruby_wasm.rb +33 -0
- data/package-lock.json +9500 -0
- data/package.json +12 -0
- data/ruby_wasm.gemspec +32 -0
- data/sig/open_uri.rbs +4 -0
- data/sig/ruby_wasm/build.rbs +322 -0
- data/sig/ruby_wasm/cli.rbs +24 -0
- data/sig/ruby_wasm/ext.rbs +11 -0
- data/sig/ruby_wasm/packager.rbs +91 -0
- data/sig/ruby_wasm/util.rbs +5 -0
- data/tasks/check.rake +37 -0
- data/tasks/ci.rake +152 -0
- data/tasks/doc.rake +24 -0
- data/tasks/format.rake +34 -0
- data/tasks/gem.rake +19 -0
- data/tasks/packaging.rake +148 -0
- data/tasks/version.rake +38 -0
- data/tools/clang-format-diff.sh +18 -0
- data/tools/exe/rbminify +12 -0
- data/tools/lib/syntax_tree/minify_ruby.rb +63 -0
- metadata +115 -0
data/tasks/doc.rake
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
require "rdoc/task"
|
2
|
+
require "ruby_wasm/version"
|
3
|
+
|
4
|
+
RDoc::Task.new do |doc|
|
5
|
+
doc.main = "README.md"
|
6
|
+
doc.title = "ruby.wasm Documentation"
|
7
|
+
doc.rdoc_files = FileList.new %w[*.md ext/**/*.c ext/**/*.rb]
|
8
|
+
end
|
9
|
+
|
10
|
+
namespace :doc do
|
11
|
+
desc "Update docs/api/javascript.md"
|
12
|
+
task :api_js do
|
13
|
+
sh "npx",
|
14
|
+
"documentation",
|
15
|
+
"readme",
|
16
|
+
"--readme-file",
|
17
|
+
"./packages/npm-packages/ruby-wasm-wasi/README.md",
|
18
|
+
"--section",
|
19
|
+
"API",
|
20
|
+
"--markdown-toc",
|
21
|
+
"false",
|
22
|
+
"./packages/npm-packages/ruby-wasm-wasi/dist/esm/index.js"
|
23
|
+
end
|
24
|
+
end
|
data/tasks/format.rake
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
namespace :format do
|
2
|
+
begin
|
3
|
+
require "syntax_tree/rake_tasks"
|
4
|
+
SyntaxTree::Rake::WriteTask.new(
|
5
|
+
:ruby,
|
6
|
+
Rake::FileList[
|
7
|
+
"Rakefile",
|
8
|
+
"lib/**/*.rb",
|
9
|
+
"ext/**/*.rb",
|
10
|
+
"tasks/**/*.rake",
|
11
|
+
"packages/**/*.rb"
|
12
|
+
]
|
13
|
+
)
|
14
|
+
rescue LoadError
|
15
|
+
end
|
16
|
+
|
17
|
+
task :js do
|
18
|
+
sh "npm run format", chdir: "packages/npm-packages/ruby-wasm-wasi"
|
19
|
+
end
|
20
|
+
|
21
|
+
task :c do
|
22
|
+
sh "find ./ext -iname *.h -o -iname *.c | xargs clang-format -i"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
task :format do
|
27
|
+
if Rake::Task.task_defined?("format:ruby")
|
28
|
+
Rake::Task["format:ruby"].invoke
|
29
|
+
else
|
30
|
+
puts "\e[33mSyntaxTree not installed, skipping format:ruby\e[0m"
|
31
|
+
end
|
32
|
+
Rake::Task["format:js"].invoke
|
33
|
+
Rake::Task["format:c"].invoke
|
34
|
+
end
|
data/tasks/gem.rake
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
2
|
+
require "rake/testtask"
|
3
|
+
|
4
|
+
Rake::TestTask.new(:test) do |t|
|
5
|
+
t.libs << "test"
|
6
|
+
t.libs << "lib"
|
7
|
+
t.test_files = FileList["test/**/test_*.rb"]
|
8
|
+
end
|
9
|
+
|
10
|
+
begin
|
11
|
+
require "rb_sys/extensiontask"
|
12
|
+
|
13
|
+
RbSys::ExtensionTask.new("ruby_wasm") { |ext| ext.lib_dir = "lib/ruby_wasm" }
|
14
|
+
rescue LoadError => e
|
15
|
+
task :compile do
|
16
|
+
$stderr.puts "Skipping compilation of ruby_wasm extension: #{e.message}"
|
17
|
+
exit 1
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,148 @@
|
|
1
|
+
wasi_vfs = RubyWasm::WasiVfsProduct.new(File.join(Dir.pwd, "build"))
|
2
|
+
wasi_sdk = TOOLCHAINS["wasi-sdk"]
|
3
|
+
tools = {
|
4
|
+
"WASI_VFS_CLI" => wasi_vfs.cli_bin_path,
|
5
|
+
"WASMOPT" => wasi_sdk.wasm_opt
|
6
|
+
}
|
7
|
+
|
8
|
+
def npm_pkg_build_command(pkg)
|
9
|
+
[
|
10
|
+
"bundle",
|
11
|
+
"exec",
|
12
|
+
"rbwasm",
|
13
|
+
"build",
|
14
|
+
"--ruby-version",
|
15
|
+
pkg[:ruby_version],
|
16
|
+
"--target",
|
17
|
+
pkg[:target],
|
18
|
+
"--build-profile",
|
19
|
+
"full"
|
20
|
+
]
|
21
|
+
end
|
22
|
+
|
23
|
+
def npm_pkg_rubies_cache_key(pkg)
|
24
|
+
build_command = npm_pkg_build_command(pkg)
|
25
|
+
require "open3"
|
26
|
+
cmd = build_command + ["--print-ruby-cache-key"]
|
27
|
+
stdout, status = Open3.capture2(*cmd)
|
28
|
+
unless status.success?
|
29
|
+
raise "Command failed with status (#{status.exitstatus}): #{cmd.join ""}"
|
30
|
+
end
|
31
|
+
require "json"
|
32
|
+
JSON.parse(stdout)["hexdigest"]
|
33
|
+
end
|
34
|
+
|
35
|
+
namespace :npm do
|
36
|
+
NPM_PACKAGES.each do |pkg|
|
37
|
+
base_dir = Dir.pwd
|
38
|
+
pkg_dir = "#{Dir.pwd}/packages/npm-packages/#{pkg[:name]}"
|
39
|
+
|
40
|
+
namespace pkg[:name] do
|
41
|
+
build_command = npm_pkg_build_command(pkg)
|
42
|
+
|
43
|
+
desc "Build ruby for npm package #{pkg[:name]}"
|
44
|
+
task "ruby" do
|
45
|
+
env = {
|
46
|
+
# Share ./build and ./rubies in the same workspace
|
47
|
+
"RUBY_WASM_ROOT" => base_dir
|
48
|
+
}
|
49
|
+
if gemfile_path = pkg[:gemfile]
|
50
|
+
env["BUNDLE_GEMFILE"] = File.join(base_dir, gemfile_path)
|
51
|
+
else
|
52
|
+
# Explicitly disable rubygems integration since Bundler finds
|
53
|
+
# Gemfile in the repo root directory.
|
54
|
+
build_command.push "--disable-gems"
|
55
|
+
end
|
56
|
+
dist_dir = File.join(pkg_dir, "dist")
|
57
|
+
mkdir_p dist_dir
|
58
|
+
if pkg[:target] == "wasm32-unknown-wasi"
|
59
|
+
sh env,
|
60
|
+
*build_command,
|
61
|
+
"--no-stdlib",
|
62
|
+
"-o",
|
63
|
+
File.join(dist_dir, "ruby.wasm")
|
64
|
+
sh env,
|
65
|
+
*build_command,
|
66
|
+
"-o",
|
67
|
+
File.join(dist_dir, "ruby.debug+stdlib.wasm")
|
68
|
+
sh wasi_sdk.wasm_opt,
|
69
|
+
"--strip-debug",
|
70
|
+
File.join(dist_dir, "ruby.wasm"),
|
71
|
+
"-o",
|
72
|
+
File.join(dist_dir, "ruby.wasm")
|
73
|
+
sh wasi_sdk.wasm_opt,
|
74
|
+
"--strip-debug",
|
75
|
+
File.join(dist_dir, "ruby.debug+stdlib.wasm"),
|
76
|
+
"-o",
|
77
|
+
File.join(dist_dir, "ruby+stdlib.wasm")
|
78
|
+
elsif pkg[:target] == "wasm32-unknown-emscripten"
|
79
|
+
sh env, *build_command, "-o", "/dev/null"
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
desc "Build npm package #{pkg[:name]}"
|
84
|
+
task "build" => ["ruby"] do
|
85
|
+
sh tools, "npm run build", chdir: pkg_dir
|
86
|
+
end
|
87
|
+
|
88
|
+
desc "Check npm package #{pkg[:name]}"
|
89
|
+
task "check" do
|
90
|
+
sh "npm test", chdir: pkg_dir
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
desc "Make tarball for npm package #{pkg[:name]}"
|
95
|
+
task pkg[:name] do
|
96
|
+
wasi_vfs.install_cli
|
97
|
+
wasi_sdk.install_binaryen
|
98
|
+
Rake::Task["npm:#{pkg[:name]}:build"].invoke
|
99
|
+
sh "npm pack", chdir: pkg_dir
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
desc "Configure for pre-release"
|
104
|
+
task :configure_prerelease, [:prerel] do |t, args|
|
105
|
+
require "json"
|
106
|
+
prerel = args[:prerel]
|
107
|
+
new_pkgs = {}
|
108
|
+
NPM_PACKAGES.each do |pkg|
|
109
|
+
pkg_dir = "#{Dir.pwd}/packages/npm-packages/#{pkg[:name]}"
|
110
|
+
pkg_json = "#{pkg_dir}/package.json"
|
111
|
+
package = JSON.parse(File.read(pkg_json))
|
112
|
+
|
113
|
+
version = package["version"] + "-#{prerel}"
|
114
|
+
new_pkgs[package["name"]] = version
|
115
|
+
sh *["npm", "pkg", "set", "version=#{version}"], chdir: pkg_dir
|
116
|
+
end
|
117
|
+
|
118
|
+
NPM_PACKAGES.each do |pkg|
|
119
|
+
pkg_dir = "#{Dir.pwd}/packages/npm-packages/#{pkg[:name]}"
|
120
|
+
pkg_json = "#{pkg_dir}/package.json"
|
121
|
+
package = JSON.parse(File.read(pkg_json))
|
122
|
+
(package["dependencies"] || []).each do |dep, _|
|
123
|
+
next unless new_pkgs[dep]
|
124
|
+
sh *["npm", "pkg", "set", "dependencies.#{dep}=#{new_pkgs[dep]}"],
|
125
|
+
chdir: pkg_dir
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
desc "Build all npm packages"
|
131
|
+
multitask all: NPM_PACKAGES.map { |pkg| pkg[:name] }
|
132
|
+
end
|
133
|
+
|
134
|
+
namespace :standalone do
|
135
|
+
STANDALONE_PACKAGES.each do |pkg|
|
136
|
+
pkg_dir = "#{Dir.pwd}/packages/standalone/#{pkg[:name]}"
|
137
|
+
|
138
|
+
desc "Build standalone package #{pkg[:name]}"
|
139
|
+
task "#{pkg[:name]}" => ["build:#{pkg[:build]}"] do
|
140
|
+
wasi_vfs.install_cli
|
141
|
+
wasi_sdk.install_binaryen
|
142
|
+
base_dir = Dir.pwd
|
143
|
+
sh tools,
|
144
|
+
"./build-package.sh #{base_dir}/rubies/ruby-#{pkg[:build]}",
|
145
|
+
chdir: pkg_dir
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
data/tasks/version.rake
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
def bump_version_npm_package(package, version)
|
2
|
+
require "json"
|
3
|
+
pkg_dir = "#{Dir.pwd}/packages/npm-packages/#{package}"
|
4
|
+
pkg_json = "#{pkg_dir}/package.json"
|
5
|
+
package = JSON.parse(File.read(pkg_json))
|
6
|
+
old_version = package["version"]
|
7
|
+
pkg_name = package["name"]
|
8
|
+
package["version"] = version
|
9
|
+
File.write(pkg_json, JSON.pretty_generate(package) + "\n")
|
10
|
+
|
11
|
+
# Update package-lock.json
|
12
|
+
# Update README.md and other docs
|
13
|
+
`git grep -l #{pkg_name}@#{old_version}`.split.each do |file|
|
14
|
+
content = File.read(file)
|
15
|
+
next_nightly = Date.today.strftime("%Y-%m-%d")
|
16
|
+
content.gsub!(
|
17
|
+
/#{pkg_name}@#{old_version}-\d{4}-\d{2}-\d{2}-a/,
|
18
|
+
"#{pkg_name}@#{version}-#{next_nightly}-a"
|
19
|
+
)
|
20
|
+
content.gsub!(/#{pkg_name}@#{old_version}/, "#{pkg_name}@#{version}")
|
21
|
+
File.write(file, content)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def bump_version_rb(version_rb, version)
|
26
|
+
version_rb_content = File.read(version_rb)
|
27
|
+
version_rb_content.gsub!(/VERSION = ".+"/, "VERSION = \"#{version}\"")
|
28
|
+
File.write(version_rb, version_rb_content)
|
29
|
+
end
|
30
|
+
|
31
|
+
task :bump_version, %i[version] do |t, args|
|
32
|
+
version = args[:version] or raise "version is required"
|
33
|
+
bump_version_rb("lib/ruby_wasm/version.rb", version)
|
34
|
+
bump_version_rb("packages/gems/js/lib/js/version.rb", version)
|
35
|
+
NPM_PACKAGES.each { |pkg| bump_version_npm_package(pkg[:name], version) }
|
36
|
+
# Update ./package-lock.json
|
37
|
+
sh "npm install"
|
38
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
set -eo pipefail
|
4
|
+
|
5
|
+
if [ -n "$1" ]; then
|
6
|
+
BASE_BRANCH="$1"
|
7
|
+
elif [ -n "$GITHUB_EVENT_BEFORE" ] && [ "push" = "$GITHUB_EVENT_NAME" ]; then
|
8
|
+
BASE_BRANCH="$GITHUB_EVENT_BEFORE"
|
9
|
+
elif [ -n "$GITHUB_BASE_REF" ]; then
|
10
|
+
BASE_BRANCH="origin/$GITHUB_BASE_REF"
|
11
|
+
else
|
12
|
+
BASE_BRANCH="@{upstream}"
|
13
|
+
fi
|
14
|
+
|
15
|
+
MERGE_BASE=$(git merge-base $BASE_BRANCH HEAD)
|
16
|
+
|
17
|
+
git diff -U0 --no-color $MERGE_BASE -- '*.c' '*.h' | clang-format-diff -i -p1
|
18
|
+
exit $?
|
data/tools/exe/rbminify
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
$LOAD_PATH << File.join(File.dirname(__FILE__), "../lib")
|
4
|
+
|
5
|
+
require "syntax_tree"
|
6
|
+
require "syntax_tree/cli"
|
7
|
+
require "syntax_tree/minify_ruby"
|
8
|
+
|
9
|
+
# Override the default formatter with our own.
|
10
|
+
SyntaxTree.register_handler(".rb", SyntaxTree::MinifyRuby)
|
11
|
+
|
12
|
+
exit(SyntaxTree::CLI.run(ARGV))
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require "syntax_tree"
|
2
|
+
|
3
|
+
module SyntaxTree
|
4
|
+
module MinifyRuby
|
5
|
+
|
6
|
+
# This is a required API for syntax tree which just delegates to SyntaxTree.parse.
|
7
|
+
def self.parse(source)
|
8
|
+
::SyntaxTree.parse(source)
|
9
|
+
end
|
10
|
+
|
11
|
+
# This is the main entrypoint for the formatter. It parses the source,
|
12
|
+
# builds a formatter, then prints the result.
|
13
|
+
def self.format(source, _maxwidth = nil)
|
14
|
+
formatter = Formatter.new(source)
|
15
|
+
program = parse(source)
|
16
|
+
CommentStrippingVisitor.new.visit(program)
|
17
|
+
program.format(formatter)
|
18
|
+
|
19
|
+
formatter.flush
|
20
|
+
formatter.output.join
|
21
|
+
end
|
22
|
+
|
23
|
+
# This is a required API for syntax tree which just delegates to SyntaxTree.read.
|
24
|
+
def self.read(filepath)
|
25
|
+
::SyntaxTree.read(filepath)
|
26
|
+
end
|
27
|
+
|
28
|
+
class CommentStrippingVisitor < SyntaxTree::Visitor
|
29
|
+
def visit(node)
|
30
|
+
if node and node.comments.any?
|
31
|
+
node.comments.clear
|
32
|
+
end
|
33
|
+
super(node)
|
34
|
+
end
|
35
|
+
|
36
|
+
def visit_statements(node)
|
37
|
+
node.body.delete_if { _1.is_a?(SyntaxTree::Comment) }
|
38
|
+
super(node)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
class Formatter < SyntaxTree::Formatter
|
43
|
+
def initialize(source)
|
44
|
+
super(source, [], Float::INFINITY) do |n|
|
45
|
+
# This block, called `genspace`, is used to generate indentation for `n` depth.
|
46
|
+
""
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def breakable(
|
51
|
+
separator = " ",
|
52
|
+
_width = separator.length,
|
53
|
+
indent: nil,
|
54
|
+
force: nil
|
55
|
+
)
|
56
|
+
# Don't break when already broken
|
57
|
+
return if target.last.is_a?(PrettierPrint::BreakParent)
|
58
|
+
return if not force and separator == ""
|
59
|
+
super(separator, _width, indent: indent, force: force)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
metadata
ADDED
@@ -0,0 +1,115 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ruby_wasm
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.5.0.pre.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Yuta Saito
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2024-01-04 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Ruby to WebAssembly toolkit. This gem takes Ruby code and Gemfile, and
|
14
|
+
packages them with Ruby runtime into a WebAssembly binary.
|
15
|
+
email:
|
16
|
+
- kateinoigakukun@gmail.com
|
17
|
+
executables:
|
18
|
+
- rbwasm
|
19
|
+
extensions:
|
20
|
+
- ext/ruby_wasm/Cargo.toml
|
21
|
+
extra_rdoc_files: []
|
22
|
+
files:
|
23
|
+
- ".clang-format"
|
24
|
+
- CONTRIBUTING.md
|
25
|
+
- Cargo.lock
|
26
|
+
- Cargo.toml
|
27
|
+
- Gemfile
|
28
|
+
- LICENSE
|
29
|
+
- NOTICE
|
30
|
+
- README.md
|
31
|
+
- Rakefile
|
32
|
+
- Steepfile
|
33
|
+
- benchmarks/vm_deep_call.rb
|
34
|
+
- builders/wasm32-unknown-emscripten/Dockerfile
|
35
|
+
- builders/wasm32-unknown-emscripten/entrypoint.sh
|
36
|
+
- builders/wasm32-unknown-wasi/Dockerfile
|
37
|
+
- builders/wasm32-unknown-wasi/entrypoint.sh
|
38
|
+
- docs/api.md
|
39
|
+
- docs/cheat_sheet.md
|
40
|
+
- docs/faq.md
|
41
|
+
- exe/rbwasm
|
42
|
+
- ext/.gitignore
|
43
|
+
- ext/README.md
|
44
|
+
- ext/extinit.c.erb
|
45
|
+
- ext/ruby_wasm/Cargo.toml
|
46
|
+
- ext/ruby_wasm/extconf.rb
|
47
|
+
- ext/ruby_wasm/src/lib.rs
|
48
|
+
- lib/ruby_wasm.rb
|
49
|
+
- lib/ruby_wasm/build.rb
|
50
|
+
- lib/ruby_wasm/build/build_params.rb
|
51
|
+
- lib/ruby_wasm/build/downloader.rb
|
52
|
+
- lib/ruby_wasm/build/executor.rb
|
53
|
+
- lib/ruby_wasm/build/product.rb
|
54
|
+
- lib/ruby_wasm/build/product/baseruby.rb
|
55
|
+
- lib/ruby_wasm/build/product/crossruby.rb
|
56
|
+
- lib/ruby_wasm/build/product/libyaml.rb
|
57
|
+
- lib/ruby_wasm/build/product/openssl.rb
|
58
|
+
- lib/ruby_wasm/build/product/product.rb
|
59
|
+
- lib/ruby_wasm/build/product/ruby_source.rb
|
60
|
+
- lib/ruby_wasm/build/product/wasi_vfs.rb
|
61
|
+
- lib/ruby_wasm/build/product/zlib.rb
|
62
|
+
- lib/ruby_wasm/build/toolchain.rb
|
63
|
+
- lib/ruby_wasm/build/toolchain/wit_bindgen.rb
|
64
|
+
- lib/ruby_wasm/cli.rb
|
65
|
+
- lib/ruby_wasm/packager.rb
|
66
|
+
- lib/ruby_wasm/packager/core.rb
|
67
|
+
- lib/ruby_wasm/packager/file_system.rb
|
68
|
+
- lib/ruby_wasm/rake_task.rb
|
69
|
+
- lib/ruby_wasm/util.rb
|
70
|
+
- lib/ruby_wasm/version.rb
|
71
|
+
- package-lock.json
|
72
|
+
- package.json
|
73
|
+
- ruby_wasm.gemspec
|
74
|
+
- sig/open_uri.rbs
|
75
|
+
- sig/ruby_wasm/build.rbs
|
76
|
+
- sig/ruby_wasm/cli.rbs
|
77
|
+
- sig/ruby_wasm/ext.rbs
|
78
|
+
- sig/ruby_wasm/packager.rbs
|
79
|
+
- sig/ruby_wasm/util.rbs
|
80
|
+
- tasks/check.rake
|
81
|
+
- tasks/ci.rake
|
82
|
+
- tasks/doc.rake
|
83
|
+
- tasks/format.rake
|
84
|
+
- tasks/gem.rake
|
85
|
+
- tasks/packaging.rake
|
86
|
+
- tasks/version.rake
|
87
|
+
- tools/clang-format-diff.sh
|
88
|
+
- tools/exe/rbminify
|
89
|
+
- tools/lib/syntax_tree/minify_ruby.rb
|
90
|
+
homepage: https://github.com/ruby/ruby.wasm
|
91
|
+
licenses:
|
92
|
+
- MIT
|
93
|
+
metadata:
|
94
|
+
homepage_uri: https://github.com/ruby/ruby.wasm
|
95
|
+
source_code_uri: https://github.com/ruby/ruby.wasm
|
96
|
+
post_install_message:
|
97
|
+
rdoc_options: []
|
98
|
+
require_paths:
|
99
|
+
- lib
|
100
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: 2.6.0
|
105
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
requirements: []
|
111
|
+
rubygems_version: 3.5.3
|
112
|
+
signing_key:
|
113
|
+
specification_version: 4
|
114
|
+
summary: Ruby to WebAssembly toolkit
|
115
|
+
test_files: []
|