add 0.2.0 features from changelog to syntax, update dependencies for online playground

This commit is contained in:
Hölting, Moritz (Intern) 2025-08-13 19:02:51 +02:00
parent cb1a30881d
commit 157dc8b528
6 changed files with 267 additions and 176 deletions

View File

@ -5,7 +5,7 @@
"scripts": {
"dev": "pnpm build-wasm && astro dev",
"start": "pnpm build-wasm && astro dev",
"build-wasm": "wasm-pack build --release --no-pack ./src/wasm/webcompiler -- --features wee_alloc",
"build-wasm": "wasm-pack build --release --no-pack ./src/wasm/webcompiler -- --features lol_alloc",
"build": "pnpm build-wasm && astro check && astro build",
"preview": "astro preview",
"astro": "astro"

View File

@ -153,6 +153,6 @@ Only functions annotated with `#[tick]`, `#[load]`, `#[deobfuscate]` or called f
```bash
shulkerscript build --zip
```
This will create a ZIP archive containing the compiled project.
This will create a ZIP archive in the `dist` directory containing the compiled project.
3. You can now distribute the archive to your users.
</Steps>

View File

@ -5,7 +5,7 @@ description: Learn the syntax of Shulkerscript
## Comments
Single-line comments start with `//` and continue until the end of the line.
Multiline comments start with `/*` and end with `*/`.
Multi-line comments start with `/*` and end with `*/`.
```shulkerscript
// This is a single line comment
@ -33,9 +33,11 @@ Literal commands are just syntactic sugar for the [`run`](#run) keyword.
:::
## Functions
!changed[0.2.0]
Functions are blocks of code that can be executed.
They start with `fn` followed by the name of the function, parenthesis and a block of code.
Optionally they can be preceeded by annotations. When a function has the `pub` keyword in front of it, it will be accessible from other files.
They start with `fn` followed by the name of the function, [arguments](../../reference/functions/#arguments) in parentheses and a block of code.
Optionally they can be preceded by annotations. When a function has the `pub` keyword in front of it, it will be accessible from other files.
```shulkerscript title="src/main.shu"
#[tick]
fn main() {
@ -43,15 +45,48 @@ fn main() {
}
#[deobfuscate]
pub fn hello() {
pub fn hello(macro name) {
/say I can be called from other files!
run `say Hello $(name)`;
}
```
This code defines a function called `main` that will be executed every tick.
:::note
Shulkerscript always requires at least one function annotated with `tick`, `load` or `deobfuscate`.
Otherwise no `.mcfunction` files will be generated.
Otherwise, no `.mcfunction` files will be generated.
:::
### Function calls
Functions can be called by using their name followed by parenthesis.
Arguments can be specified in the parenthesis separated by commas.
```shulkerscript
#[tick]
fn main() {
hello("World");
}
fn hello(macro name) {
run `say Hello, $(name)!`;
}
```
### Return
!since[0.2.0]
To early end a function execution or to return a value, the `return` command was added in Minecraft 1.20.
Similarly, the `return` statement is available in Shulkerscript.
```shulkerscript
#[deobfuscate = "returns_value"]
fn returnsValue() {
return 5;
}
```
:::caution[Important]
This should be always preferred over using the raw `/return` command.
Special handling is done to make returning work in combination with conditionals, groups, etc.
:::
### Annotations
@ -63,22 +98,45 @@ Currently, the following annotations are supported:
- `#[deobfuscate]`: The function will keep the original name in the output (path of the `.shu`-file followed by the function name).
- `#[deobfuscate = "path/to/function"]`: The function will be named as specified in the argument.
### Function calls
Functions can be called by using their name followed by parenthesis.
```shulkerscript
#[tick]
fn main() {
hello();
}
### Provided functions
!since[0.2.0]
fn hello() {
/say Hello, world!
Shulkerscript provides some internal functions.
These can be called like user-defined functions, but have access to the compilation process and therefore greater possibilities.
| Function | Description |
| -------- | ----------- |
| `print` | Allows to print a string or macro string to the chat. Variables in the macro string are substituted at runtime. |
Example:
```shulkerscript
#[load]
fn load() {
int x = 5;
print(`Value of x=$(x)`);
}
```
## Macro Strings
!since[0.2.0]
When inside a function that has a macro as a parameter, this can be used inside strings by using the macro string format.
Instead of normal quotation marks `"`, the backtick `` ` `` is used for this type of string.
Inside a macro string, `$(MACRO NAME)` can be used to place the value of the macro at that position in the string.
When wanting to use it in a regular command, use the run syntax.
```shulkerscript
fn macroFunction(macro name) {
run `say Hello $(name)`;
}
```
## Imports
Functions from other files can be imported by using the `from`-`import` syntax.
Functions and global variables from other files can be imported by using the `from`-`import` syntax.
```shulkerscript title="src/main.shu"
namespace "foo";
@ -108,10 +166,12 @@ from "./foo" import bar, baz;
```
## Tags
!changed[0.2.0]
In Minecraft, tags are used to group multiple items, blocks, entities, etc. together.
In Shulkerscript, tags can be defined right in the code, where they are needed.
```shulkerscript
tag "foo" of "block" [
tag<"block"> "foo" [
"minecraft:stone",
"minecraft:dirt"
]
@ -121,7 +181,7 @@ This will result in a tag of type `block` with the name `foo` containing the blo
If you want the tag to replace, instead of append to the existing tag, you can use the `replace` keyword.
```shulkerscript
tag "foo" of "block" replace [
tag<"block"> "foo" replace [
"minecraft:stone",
"minecraft:dirt"
]
@ -139,12 +199,12 @@ the types:
But you can also use custom types, refer to [this page](https://minecraft.wiki/w/Tag) for more information.
:::tip
`of "[type]"` can be omitted and will default to `"function"`.
`<"[type]">` can be omitted and will default to `"function"`.
:::
## Conditional Statements
Conditional statements are used to execute code based on a condition.
They start with `if` followed by a condition in parenthesis and a block of code.
They start with `if` followed by a condition in parentheses and a block of code.
Optionally they can be followed by an `else` block.
```shulkerscript
if ("block ~ ~-1 ~ minecraft:stone") {
@ -158,7 +218,7 @@ To learn more about how to combine or negate conditions, refer to the [if-else s
## Execute Blocks
Execute blocks are used to execute a block of code in a specific context.
They consist of the keyword you would pass to the `/execute` command followed the argument as a string in parenthesis and a block of code.
They consist of the keyword you would pass to the `/execute` command followed the argument as a string in parentheses and a block of code.
```shulkerscript
as ("@a") { // execute as all players
/say Hello, world!
@ -177,7 +237,7 @@ positioned ("0 0 0"), in ("minecraft:overworld") {
```
:::tip[Did you know?]
[Conditionals](#conditional-statements) are also implemented as execute blocks.Therefore you can chain them together with other execute blocks. Keep in mind that an if-else statement can only be used as the last execute block in a chain.
[Conditionals](#conditional-statements) are also implemented as execute blocks. Therefore, you can chain them together with other execute blocks. Keep in mind that an if-else statement can only be used as the last execute block in a chain.
:::
### Supported Execute Blocks
@ -212,6 +272,36 @@ group {
}
```
## Variables
!since[0.2.0]
Variables can be used to store values.
There are different types available, and they differ in how they are stored,
what data can be stored in them and how they can be used.
| Keyword | Storage method | Usage |
| ------- | --------------- | ----- |
| `int` | Scoreboard | Single integer values |
| `bool` | Data Storage | Single boolean values |
| `val` | Compiler memory | Can store any data type, but has to be known at compile time |
| `int[NUMBER]` | Scoreboard | Array of `NUMBER` integers |
| `bool[NUMBER]` | Data Storage | Array of `NUMBER` booleans |
| `int[]` | Scoreboard | Map of integers |
| `bool[]` | Entity tag | Map of booleans (keys have to be valid entities in the world) |
```shulkerscript
int x = 5;
bool y = true;
int z = x + 2;
int[2] arr;
arr[0] = 1;
arr[1] = 2;
```
Read more in the [reference](../../reference/variables).
## Run
The `run` keyword is used to evaluate the following expression and include the resulting command in the output.
```shulkerscript

View File

@ -1,6 +1,6 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
version = 4
[[package]]
name = "adler2"
@ -19,9 +19,9 @@ dependencies = [
[[package]]
name = "ansi-to-html"
version = "0.2.1"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d73c455ae09fa2223a75114789f30ad605e9e297f79537953523366c05995f5f"
checksum = "12e283a4fc285735ef99577e81a125f738429516161ac33977e466d0d8d40764"
dependencies = [
"regex",
"thiserror",
@ -29,19 +29,25 @@ dependencies = [
[[package]]
name = "anyhow"
version = "1.0.89"
version = "1.0.99"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6"
checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100"
[[package]]
name = "arbitrary"
version = "1.3.2"
version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110"
checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223"
dependencies = [
"derive_arbitrary",
]
[[package]]
name = "autocfg"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
[[package]]
name = "base64"
version = "0.22.1"
@ -56,15 +62,9 @@ checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
[[package]]
name = "cfg-if"
version = "0.1.10"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
[[package]]
name = "cfg-if"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268"
[[package]]
name = "chksum-core"
@ -112,13 +112,22 @@ dependencies = [
"windows-sys",
]
[[package]]
name = "colored"
version = "3.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fde0e0ec90c9dfb3b4b1a0891a7dcd0e2bffde2f7efed5fe7c9bb00e5bfb915e"
dependencies = [
"windows-sys",
]
[[package]]
name = "console_error_panic_hook"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc"
dependencies = [
"cfg-if 1.0.0",
"cfg-if",
"wasm-bindgen",
]
@ -128,20 +137,14 @@ version = "1.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
dependencies = [
"cfg-if 1.0.0",
"cfg-if",
]
[[package]]
name = "crossbeam-utils"
version = "0.8.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
[[package]]
name = "derive_arbitrary"
version = "1.3.2"
version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611"
checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800"
dependencies = [
"proc-macro2",
"quote",
@ -168,17 +171,6 @@ dependencies = [
"syn",
]
[[package]]
name = "displaydoc"
version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "either"
version = "1.13.0"
@ -205,11 +197,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
[[package]]
name = "flate2"
version = "1.0.34"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0"
checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d"
dependencies = [
"crc32fast",
"libz-rs-sys",
"miniz_oxide",
]
@ -278,10 +271,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
[[package]]
name = "libc"
version = "0.2.159"
name = "libz-rs-sys"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5"
checksum = "172a788537a2221661b480fee8dc5f96c580eb34fa88764d3205dc356c7e4221"
dependencies = [
"zlib-rs",
]
[[package]]
name = "lock_api"
version = "0.4.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765"
dependencies = [
"autocfg",
"scopeguard",
]
[[package]]
name = "lockfree-object-pool"
@ -295,23 +301,26 @@ version = "0.4.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
[[package]]
name = "lol_alloc"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "83e5106554cabc97552dcadf54f57560ae6af3276652f82ca2be06120dc4c5dc"
dependencies = [
"spin",
]
[[package]]
name = "memchr"
version = "2.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
[[package]]
name = "memory_units"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8452105ba047068f40ff7093dd1d9da90898e63dd61736462e9cdda6a90ad3c3"
[[package]]
name = "miniz_oxide"
version = "0.8.0"
version = "0.8.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1"
checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
dependencies = [
"adler2",
]
@ -443,10 +452,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
[[package]]
name = "serde"
version = "1.0.210"
name = "scopeguard"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
[[package]]
name = "serde"
version = "1.0.219"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6"
dependencies = [
"serde_derive",
]
@ -464,9 +479,9 @@ dependencies = [
[[package]]
name = "serde_derive"
version = "1.0.210"
version = "1.0.219"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
dependencies = [
"proc-macro2",
"quote",
@ -487,9 +502,9 @@ dependencies = [
[[package]]
name = "serde_spanned"
version = "0.6.8"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1"
checksum = "40734c41988f7306bb04f0ecf60ec0f3f1caa34290e4e8ea471dcd3346483b83"
dependencies = [
"serde",
]
@ -514,7 +529,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1546b5164f154cb0ecb5b676d0f1beeb46b9417b785b2bc43b8e2d07caab01eb"
dependencies = [
"chksum-md5",
"colored",
"colored 2.1.0",
"derive_more",
"enum-as-inner",
"getset",
@ -536,6 +551,15 @@ version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
[[package]]
name = "spin"
version = "0.9.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
dependencies = [
"lock_api",
]
[[package]]
name = "strsim"
version = "0.11.1"
@ -566,9 +590,9 @@ dependencies = [
[[package]]
name = "syn"
version = "2.0.79"
version = "2.0.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590"
checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d"
dependencies = [
"proc-macro2",
"quote",
@ -597,38 +621,43 @@ dependencies = [
[[package]]
name = "toml"
version = "0.8.19"
version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e"
dependencies = [
"serde",
"serde_spanned",
"toml_datetime",
"toml_edit",
]
[[package]]
name = "toml_datetime"
version = "0.6.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41"
dependencies = [
"serde",
]
[[package]]
name = "toml_edit"
version = "0.22.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5"
checksum = "75129e1dc5000bfbaa9fee9d1b21f974f9fbad9daec557a521ee6e080825f6e8"
dependencies = [
"indexmap",
"serde",
"serde_spanned",
"toml_datetime",
"toml_parser",
"toml_writer",
"winnow",
]
[[package]]
name = "toml_datetime"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bade1c3e902f58d73d3f294cd7f20391c1cb2fbcb643b73566bc773971df91e3"
dependencies = [
"serde",
]
[[package]]
name = "toml_parser"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b551886f449aa90d4fe2bdaa9f4a2577ad2dde302c61ecf262d80b116db95c10"
dependencies = [
"winnow",
]
[[package]]
name = "toml_writer"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fcc842091f2def52017664b53082ecbbeb5c7731092bad69d2c63050401dfd64"
[[package]]
name = "tracing"
version = "0.1.40"
@ -668,24 +697,24 @@ checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe"
[[package]]
name = "wasm-bindgen"
version = "0.2.93"
version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5"
checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5"
dependencies = [
"cfg-if 1.0.0",
"cfg-if",
"once_cell",
"rustversion",
"wasm-bindgen-macro",
]
[[package]]
name = "wasm-bindgen-backend"
version = "0.2.93"
version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b"
checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6"
dependencies = [
"bumpalo",
"log",
"once_cell",
"proc-macro2",
"quote",
"syn",
@ -694,9 +723,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
version = "0.2.93"
version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf"
checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@ -704,9 +733,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
version = "0.2.93"
version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836"
checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de"
dependencies = [
"proc-macro2",
"quote",
@ -717,9 +746,12 @@ dependencies = [
[[package]]
name = "wasm-bindgen-shared"
version = "0.2.93"
version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484"
checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d"
dependencies = [
"unicode-ident",
]
[[package]]
name = "webcompiler"
@ -728,52 +760,18 @@ dependencies = [
"ansi-to-html",
"anyhow",
"base64",
"cfg-if 1.0.0",
"colored",
"cfg-if",
"colored 3.0.0",
"console_error_panic_hook",
"lol_alloc",
"serde",
"serde-wasm-bindgen",
"shulkerscript",
"toml",
"wasm-bindgen",
"wee_alloc",
"zip",
]
[[package]]
name = "wee_alloc"
version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dbb3b5a6b2bb17cb6ad44a2e68a43e8d2722c997da10e928665c72ec6c0a0b8e"
dependencies = [
"cfg-if 0.1.10",
"libc",
"memory_units",
"winapi",
]
[[package]]
name = "winapi"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
dependencies = [
"winapi-i686-pc-windows-gnu",
"winapi-x86_64-pc-windows-gnu",
]
[[package]]
name = "winapi-i686-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "windows-sys"
version = "0.48.0"
@ -842,30 +840,30 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
[[package]]
name = "winnow"
version = "0.6.20"
version = "0.7.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b"
dependencies = [
"memchr",
]
checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95"
[[package]]
name = "zip"
version = "2.2.0"
version = "4.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc5e4288ea4057ae23afc69a4472434a87a2495cafce6632fd1c4ec9f5cf3494"
checksum = "9aed4ac33e8eb078c89e6cbb1d5c4c7703ec6d299fc3e7c3695af8f8b423468b"
dependencies = [
"arbitrary",
"crc32fast",
"crossbeam-utils",
"displaydoc",
"flate2",
"indexmap",
"memchr",
"thiserror",
"zopfli",
]
[[package]]
name = "zlib-rs"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "626bd9fa9734751fc50d6060752170984d7053f5a39061f524cda68023d4db8a"
[[package]]
name = "zopfli"
version = "0.8.1"

View File

@ -10,21 +10,24 @@ crate-type = ["cdylib"]
opt-level = "z"
[features]
wee_alloc = ["dep:wee_alloc"]
lol_alloc = ["dep:lol_alloc"]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
ansi-to-html = "0.2.1"
anyhow = "1.0.86"
ansi-to-html = "0.2.2"
anyhow = "1.0.99"
base64 = "0.22.1"
cfg-if = "1.0.0"
colored = "2.1.0"
cfg-if = "1.0.1"
colored = "3.0.0"
console_error_panic_hook = "0.1.7"
serde = "1.0"
lol_alloc = { version = "0.4.1", optional = true }
serde = "1.0.219"
serde-wasm-bindgen = "0.6.5"
shulkerscript = { version = "0.1.0", default-features = false, features = ["serde", "shulkerbox"] }
toml = "0.8.19"
wasm-bindgen = "0.2.93"
wee_alloc = { version = "0.4.5", optional = true }
zip = { version = "2.1.3", default-features = false, features = ["deflate"] }
toml = "0.9.5"
wasm-bindgen = "0.2.100"
zip = { version = "4.3.0", default-features = false, features = ["deflate"] }
[package.metadata.wasm-pack.profile.release]
wasm-opt = false

View File

@ -19,9 +19,9 @@ mod fs;
mod pack_toml;
cfg_if::cfg_if! {
if #[cfg(feature = "wee_alloc")] {
if #[cfg(feature = "lol_alloc")] {
#[global_allocator]
static ALLOC: wee_alloc::WeeAlloc = wee_alloc::WeeAlloc::INIT;
static ALLOC: lol_alloc::LockedAllocator<lol_alloc::FreeListAllocator> = lol_alloc::LockedAllocator::new(lol_alloc::FreeListAllocator::new());
}
}