smol-string 0.0.0 → 0.0.2
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.
- package/README.md +22 -0
- package/dist/common.d.ts +13 -8
- package/dist/smol-string-packed.d.ts +2 -2
- package/dist/smol-string-packed.js +30 -42
- package/dist/smol-string-worker-packed.d.ts +2 -2
- package/dist/smol-string-worker-packed.js +36 -37
- package/dist/smol-string-worker.d.ts +2 -2
- package/dist/smol-string-worker.js +36 -37
- package/dist/smol-string.d.ts +2 -2
- package/dist/smol-string.js +28 -42
- package/dist/wasm-helper-57a16a1d.js +56 -0
- package/dist/worker-packed.d.ts +5 -5
- package/dist/worker.d.ts +5 -5
- package/package.json +1 -1
- package/src/common.ts +18 -4
- package/src/module-packed.wasm +0 -0
- package/src/module.wasm +0 -0
- package/src/smol-string-packed.ts +25 -35
- package/src/smol-string-worker-packed.ts +2 -5
- package/src/smol-string-worker.ts +0 -3
- package/src/smol-string.ts +24 -39
- package/test/basic.test.ts +29 -29
- package/test/common.ts +15 -15
- package/test/json.bench.ts +51 -51
- package/dist/wasm-helper-6790be72.js +0 -45
package/dist/smol-string.js
CHANGED
|
@@ -1,42 +1,28 @@
|
|
|
1
|
-
import { i as
|
|
2
|
-
const w = (I) => o(I, "data:application/wasm;base64,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IgBBgHBqIAEgAGsQmYCAgAALIAJBEGokgICAgAALOwEBfyOAgICAAEEQayIDJICAgIAAIAMgACkCADcDCCADQQhqIAEgAkEBEJeAgIAAIANBEGokgICAgAALvQEBBH9BACEEAkAgAUGBgHxPDQACQCOBgICAAEGogMCAAGogAUH//wNqQRB2IgEgAhCWgICAACIEQX9HDQACQCOBgICAAEGggMCAAGogASACEJaAgIAAIgRBf0YNACAEQYAQaiEEDAELQQAhBEEBIAJ0IgU/ACIGQRB0IgJqQX9qQQAgBWtxIgUgAmtBEHYiByABakAAQQFIDQEgByAGaiEEIAUgAkYNACAGIAQQmICAgAALIARBEHQhBAsgBAtPAQF/AkAgAkH//wNqIgZBgIB8cSAETyICRQ0AIARB//8DakEQdiIEIAZBEHYiBkYNACAEIAFB//8DakEQdiIBaiABIAZqEJiAgIAACyACCyEAIAFB//8DakEQdiIBIAEgAkH//wNqQRB2ahCYgICAAAt1AQF+IAAgBCABfiACIAN+fCADQiCIIgIgAUIgiCIEfnwgA0L/////D4MiAyABQv////8PgyIBfiIFQiCIIAMgBH58IgNCIIh8IANC/////w+DIAIgAX58IgFCIIh8NwMIIAAgAUIghiAFQv////8Pg4Q3AwALLAEBfwJAIAJFDQAgACEDA0AgAyABOgAAIANBAWohAyACQX9qIgINAAsLIAALQgEBfwJAIAJFDQAgAkF/aiECIAAhAwNAIAMgAS0AADoAACACRQ0BIAJBf2ohAiABQQFqIQEgA0EBaiEDDAALCyAACwtBAgBBgIDAAAsIAAAAAAAAAAAAQYiAwAALKAEAAAACAAAAAwAAAAAAAAAAAAAACAAQAKqqqqoAAAAAMAAQABAAAAA="), a = await w(), A = a.exports;
|
|
3
|
-
function
|
|
4
|
-
const { ptr: C, length:
|
|
5
|
-
A.free(C,
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
I.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
);
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
const B = new Uint8Array(
|
|
30
|
-
A.memory.buffer.slice(
|
|
31
|
-
g,
|
|
32
|
-
g + (A.memory.buffer.byteLength - g)
|
|
33
|
-
)
|
|
34
|
-
), E = B.indexOf(0);
|
|
35
|
-
return A.free(g, E + 1), new TextDecoder().decode(
|
|
36
|
-
B.slice(0, E)
|
|
37
|
-
);
|
|
38
|
-
}
|
|
39
|
-
export {
|
|
40
|
-
h as compress,
|
|
41
|
-
J as decompress
|
|
42
|
-
};
|
|
1
|
+
import { i as F, c as a, e as G, U as h } from "./wasm-helper-57a16a1d.js";
|
|
2
|
+
const k = (I) => F(I, "data:application/wasm;base64,AGFzbQEAAAABUQxgBH9/f38Bf2AFf39/f38AYAZ/f39/f38Bf2ABfwF/YAN/f38AYAJ/fwBgAX8AYAR/f39/AGACf38BfmACf38Bf2ADf39/AX9gBX9+fn5+AAMdHAMEAwQFBAYFBwgACQkJBgQJCQoHBQQAAgELCgoEBQFwAQQEBQMBABEGDgJ/AUGAgMAAC38AQQALB0QGBm1lbW9yeQIACmFsbG9jVWludDgAAAthbGxvY1VpbnQxNgACBGZyZWUABAhjb21wcmVzcwALCmRlY29tcHJlc3MAEAkJAQBBAQsDFhcYCv83HF4BAX8jgICAgABBEGsiASSAgICAACABI4GAgIAAQZiAwIAAaikDADcDACABQQhqIAEgABCBgICAAAJAIAEvAQwNACABKAIIIQAgAUEQaiSAgICAACAADwsDfwAMAAsLcQIBfwF+I4CAgIAAQRBrIgMkgICAgABCgICAgBAhBAJAQQFFDQACQCACDQBC/////w8hBAwBCyABKAIAIAJBAEEAIAEoAgQoAgARgICAgAAAIgJFrUIghiACrYQhBAsgACAENwIAIANBEGokgICAgAALXgEBfyOAgICAAEEQayIBJICAgIAAIAEjgYCAgABBmIDAgABqKQMANwMAIAFBCGogASAAEIOAgIAAAkAgAS8BDA0AIAEoAgghACABQRBqJICAgIAAIAAPCwN/AAwACwuHAQIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyACQQBIOgAMAkACQCACQX9KDQBCgICAgBAhBAwBCwJAIAJBAXQiAg0AQv7///8PIQQMAQsgASgCACACQQFBACABKAIEKAIAEYCAgIAAACICRa1CIIYgAq2EIQQLIAAgBDcCACADQRBqJICAgIAACxkAI4GAgIAAQZiAwIAAaiAAIAEQhYCAgAALOAEBfwJAIAJBACACGyIDRQ0AIAAoAgAgAUGq1arVeiACGyADQQBBACAAKAIEKAIIEYGAgIAAAAsLDwAgACAAQQxqEIeAgIAAC3ABA38CQCAAKAIAIgJFDQACQCACQXRqIgNBCGooAgAiAkEKbCACQQ9qQXxxakEDakF8cSICQQAgAhsiBEUNACABKAIAIANBBCACGyAEQQJBACABKAIEKAIIEYGAgIAAAAsgAEEANgIIIABBADYCAAsL2AIDBH8BfgR/I4CAgIAAQRBrIgQkgICAgAAjgYCAgAAhBSABKAIAIQYCQAJAIAEoAgQNACAFQYCAwIAAaiEHDAELIAIgAxCJgICAACEIAkACQCAGDQBBACEFQX8hCQwBCyAGQXxqKAIAIgVBf2ohCQsgBkF4aiEKIAkgCKdxIQEgCEI5iKchCwNAI4GAgIAAQYCAwIAAaiEHIAYgAWosAAAiDEUNASAFRQ0BAkAgDEF/Sg0AIAsgDEH/AHFHDQAgAiADIAooAgAgAUEDdGoiDCgCACAMKAIEEIqAgIAAQQFxRQ0AIARBAToADCAEIAE2AgggBEEIaiEHDAILIAVBf2ohBSABQQFqIAlxIQEMAAsLAkACQCAHLQAEDQBBACEBQQAhBQwBCyAGQXRqKAIAIAcoAgBBAXRqLwEAIQFBgIAEIQULIAAgBSABcjYBACAEQRBqJICAgIAAC+wFBQJ/AX4BfwJ+An8jgICAgABB4ABrIgIkgICAgAACQAJAAkACQAJAIAFBEEsNACABQQNNDQEgADUAAEIghiAAIAFBAXZB/P///wdxIgNqNQAAhCEEIAAgAUF8aiIFajUAAEIghiAAIAUgA2tqNQAAhCEGQqya4tOj0vD6HyEHDAQLQQAhA0KsmuLTo9Lw+h8hB0EAIQUgAUEwSQ0CQQAhBUKsmuLTo9Lw+h8hB0KsmuLTo9Lw+h8hBEKsmuLTo9Lw+h8hBgNAIAVBMGoiCCABTw0CIAJBwABqIAAgBWoiBSkACCAGhUIAIAUpAABC29HQhZra34FnhUIAEJmAgIAAIAJBMGogBUEYaikAACAEhUIAIAVBEGopAABC442j5Inemt6Of4VCABCZgICAACACQSBqIAVBKGopAAAgB4VCACAFQSBqKQAAQsOZ3anHudnM2ACFQgAQmYCAgAAgAkHAAGpBCGopAwAgAikDQIUhBiACQSBqQQhqKQMAIAIpAyCFIQcgAkEwakEIaikDACACKQMwhSEEIAghBQwACwtCACEGQqya4tOj0vD6HyEHAkAgAQ0AQgAhBAwDCyAAIAFBAXZqMQAAQgiGIAAxAABCEIaEIAEgAGpBf2oxAACEIQQMAgsgBCAHhSAGhSEHCyAAIAVqIQkgASAFayEIAkADQCADQRBqIgUgCE8NASACQdAAaiAJIANqIgNBCGopAAAgB4VCACADKQAAQtvR0IWa2t+BZ4VCABCZgICAACACQdAAakEIaikDACACKQNQhSEHIAUhAwwACwsgASAAaiIDQXhqKQAAIQYgA0FwaikAACEECyACQRBqIARC29HQhZra34FnhUIAIAYgB4VCABCZgICAACACIAJBEGpBCGopAwBC29HQhZra34FnhUIAIAGtIAIpAxCFQq/I9cXHrIe7oH+FQgAQmYCAgAAgAkEIaikDACEHIAIpAwAhBCACQeAAaiSAgICAACAHIASFC1gBAn9BACEEAkAgASADRw0AAkAgACACRw0AQQEPCwNAIAFFIQQgAUUNASABQX9qIQEgAi0AACEDIAAtAAAhBSAAQQFqIQAgAkEBaiECIAUgA0YNAAsLIAQLiRMGAX8BfgV/AX4cfwF+I4CAgIAAQaABayICJICAgIAAAkACQAJAIAENACOBgICAAEGYgMCAAGopAwAhA0Gq1arVeiEEQQAhBUEAIQYMAQtBACEHIAJBGGpBCGoiCEEANgIAIAJCADcDGCACI4GAgIAAQZiAwIAAaikDACIJNwIkIAIgCTcCdCACQQA2AnAgAkKq1arVCjcCaAJAIAJB6ABqIAEQjICAgABB//8DcUUNACACQRhqEIaAgIAADAILIAJBGGpBDGohCiAJQiCIpyELIAIpAnQhAyACKAJwIQUgAigCbCEGIAIoAmghBCAJpyEMQYACIQ1BACEOA0AgBiEPIA5BAmohByAAIA5qIRBBACEGAkACQAJAAkACQAJAAkACQAJAAkADQAJAAkAgByAGaiABTw0AIAJBMGogAkEYaiAQIAZBAmoiERCIgICAACACLQAyDQEgAigCGCESIAIoAiANBgJAAkAgEg0AQQEhBwwBCyASQXxqKAIArULQAH4iCSAJQuQAgn1C5AB8QtAAgKchBwtBACETIAJB6ABqQQhqIhRBADYCACACQgA3A2hBAA0FAkACQEIBQSAgB2drrUL//wODhqciB0EIIAdBCEsbIhVBAXQgFUEPakF8cSIWIBVBA3RqIhdqQQNqQXxxIgcNAEF8IQcMAQtBACETIAwgB0ECQQAgCygCABGAgICAAAAiB0UNBgsgB0EIaiIYIBU2AgAgByAHIBZqNgIEIAcgByAXajYCACACIAdBDGoiBzYCaCAHQQAgFRCagICAACETIAIgFa1C0AB+QuQAgKciGTYCcCACKAIcIhpFDQRB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"), J = await k(), A = J.exports;
|
|
3
|
+
function c(I) {
|
|
4
|
+
const { ptr: C, length: Q } = a(I, A), E = A.compress(C, Q);
|
|
5
|
+
A.free(C, Q);
|
|
6
|
+
const { start: g, end: i, capacity: o } = G(A.memory, E), D = new Uint16Array(A.memory.buffer.slice(g, i)), w = h(D);
|
|
7
|
+
return A.free(g, o), w;
|
|
8
|
+
}
|
|
9
|
+
function s(I) {
|
|
10
|
+
const C = A.allocUint16(I.length), Q = new Uint16Array(
|
|
11
|
+
A.memory.buffer,
|
|
12
|
+
C,
|
|
13
|
+
I.length
|
|
14
|
+
);
|
|
15
|
+
for (let B = 0; B < I.length; B++)
|
|
16
|
+
Q[B] = I.charCodeAt(B);
|
|
17
|
+
const E = A.decompress(
|
|
18
|
+
C,
|
|
19
|
+
I.length
|
|
20
|
+
);
|
|
21
|
+
A.free(C, I.length);
|
|
22
|
+
const { start: g, end: i, capacity: o } = G(A.memory, E), D = new Uint8Array(A.memory.buffer.slice(g, i)), w = new TextDecoder().decode(D);
|
|
23
|
+
return A.free(g, o), w;
|
|
24
|
+
}
|
|
25
|
+
export {
|
|
26
|
+
c as compress,
|
|
27
|
+
s as decompress
|
|
28
|
+
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
function o(n, e) {
|
|
2
|
+
const t = new TextEncoder().encode(n), a = e.allocUint8(t.length);
|
|
3
|
+
return new Uint8Array(
|
|
4
|
+
e.memory.buffer,
|
|
5
|
+
a,
|
|
6
|
+
t.length
|
|
7
|
+
).set(t), { ptr: a, length: t.length };
|
|
8
|
+
}
|
|
9
|
+
function f(n) {
|
|
10
|
+
const e = new Array(n.length);
|
|
11
|
+
for (let t = 0; t < n.length; t++)
|
|
12
|
+
e[t] = String.fromCharCode(n[t]);
|
|
13
|
+
return e.join("");
|
|
14
|
+
}
|
|
15
|
+
function c(n, e) {
|
|
16
|
+
const t = new Uint32Array(
|
|
17
|
+
n.buffer.slice(e, e + 8)
|
|
18
|
+
), a = t.at(0), r = t.at(1);
|
|
19
|
+
return {
|
|
20
|
+
start: e - a,
|
|
21
|
+
end: e,
|
|
22
|
+
capacity: r
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
const l = async (n = {}, e) => {
|
|
26
|
+
let t;
|
|
27
|
+
if (e.startsWith("data:")) {
|
|
28
|
+
const a = e.replace(/^data:.*?base64,/, "");
|
|
29
|
+
let r;
|
|
30
|
+
if (typeof Buffer == "function" && typeof Buffer.from == "function")
|
|
31
|
+
r = Buffer.from(a, "base64");
|
|
32
|
+
else if (typeof atob == "function") {
|
|
33
|
+
const s = atob(a);
|
|
34
|
+
r = new Uint8Array(s.length);
|
|
35
|
+
for (let i = 0; i < s.length; i++)
|
|
36
|
+
r[i] = s.charCodeAt(i);
|
|
37
|
+
} else
|
|
38
|
+
throw new Error("Failed to decode base64-encoded data URL, Buffer and atob are not supported");
|
|
39
|
+
t = await WebAssembly.instantiate(r, n);
|
|
40
|
+
} else {
|
|
41
|
+
const a = await fetch(e), r = a.headers.get("Content-Type") || "";
|
|
42
|
+
if ("instantiateStreaming" in WebAssembly && r.startsWith("application/wasm"))
|
|
43
|
+
t = await WebAssembly.instantiateStreaming(a, n);
|
|
44
|
+
else {
|
|
45
|
+
const s = await a.arrayBuffer();
|
|
46
|
+
t = await WebAssembly.instantiate(s, n);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return t.instance;
|
|
50
|
+
};
|
|
51
|
+
export {
|
|
52
|
+
f as U,
|
|
53
|
+
o as c,
|
|
54
|
+
c as e,
|
|
55
|
+
l as i
|
|
56
|
+
};
|
package/dist/worker-packed.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export type Message = {
|
|
2
|
-
command: string;
|
|
3
|
-
id: number;
|
|
4
|
-
data: string;
|
|
5
|
-
};
|
|
1
|
+
export type Message = {
|
|
2
|
+
command: string;
|
|
3
|
+
id: number;
|
|
4
|
+
data: string;
|
|
5
|
+
};
|
package/dist/worker.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export type Message = {
|
|
2
|
-
command: string;
|
|
3
|
-
id: number;
|
|
4
|
-
data: string;
|
|
5
|
-
};
|
|
1
|
+
export type Message = {
|
|
2
|
+
command: string;
|
|
3
|
+
id: number;
|
|
4
|
+
data: string;
|
|
5
|
+
};
|
package/package.json
CHANGED
package/src/common.ts
CHANGED
|
@@ -4,16 +4,15 @@ export function copyToWasmBuffer(
|
|
|
4
4
|
) {
|
|
5
5
|
// There's also an 'encodeInto' method to avoid a copy, but by encoding first, we con allocate only exactly what we need.
|
|
6
6
|
const utf8Str = new TextEncoder().encode(str);
|
|
7
|
-
const ptrToStr = exports.allocUint8(utf8Str.length
|
|
7
|
+
const ptrToStr = exports.allocUint8(utf8Str.length);
|
|
8
8
|
const inBuffer = new Uint8Array(
|
|
9
9
|
exports.memory.buffer,
|
|
10
10
|
ptrToStr,
|
|
11
|
-
utf8Str.length
|
|
11
|
+
utf8Str.length
|
|
12
12
|
);
|
|
13
13
|
inBuffer.set(utf8Str); // Copy to WASM buffer.
|
|
14
|
-
inBuffer[utf8Str.length] = 0; // null terminate it.
|
|
15
14
|
|
|
16
|
-
return { ptr: ptrToStr, length: utf8Str.length
|
|
15
|
+
return { ptr: ptrToStr, length: utf8Str.length };
|
|
17
16
|
}
|
|
18
17
|
|
|
19
18
|
// Horrible. Surely we can do better...
|
|
@@ -23,3 +22,18 @@ export function Uint16ArraytoString(buf: Uint16Array) {
|
|
|
23
22
|
strBuilder[i] = String.fromCharCode(buf[i]);
|
|
24
23
|
return strBuilder.join("");
|
|
25
24
|
}
|
|
25
|
+
|
|
26
|
+
export function extractFooter(memory: WebAssembly.Memory, ptrToFooter: number) {
|
|
27
|
+
const footer = new Uint32Array(
|
|
28
|
+
memory.buffer.slice(ptrToFooter, ptrToFooter + 8)
|
|
29
|
+
);
|
|
30
|
+
const streamLength = footer.at(0)!;
|
|
31
|
+
const capacity = footer.at(1)!;
|
|
32
|
+
const start = ptrToFooter - streamLength;
|
|
33
|
+
|
|
34
|
+
return {
|
|
35
|
+
start,
|
|
36
|
+
end: ptrToFooter,
|
|
37
|
+
capacity,
|
|
38
|
+
};
|
|
39
|
+
}
|
package/src/module-packed.wasm
CHANGED
|
Binary file
|
package/src/module.wasm
CHANGED
|
Binary file
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
Uint16ArraytoString,
|
|
3
|
+
copyToWasmBuffer,
|
|
4
|
+
extractFooter,
|
|
5
|
+
} from "./common.js";
|
|
2
6
|
import init from "./module-packed.wasm?init";
|
|
3
7
|
|
|
4
8
|
type exportsType = {
|
|
@@ -11,7 +15,7 @@ type exportsType = {
|
|
|
11
15
|
tokenCount: number
|
|
12
16
|
) => number;
|
|
13
17
|
free: (ptr: number, length: number) => void;
|
|
14
|
-
memory:
|
|
18
|
+
memory: WebAssembly.Memory;
|
|
15
19
|
};
|
|
16
20
|
|
|
17
21
|
const instance = await init();
|
|
@@ -20,31 +24,26 @@ const exports = instance.exports as exportsType;
|
|
|
20
24
|
export function compressPacked(str: string) {
|
|
21
25
|
const { ptr, length } = copyToWasmBuffer(str, exports);
|
|
22
26
|
|
|
23
|
-
const
|
|
27
|
+
const ptrToFooter = exports.compressPacked(ptr, length);
|
|
24
28
|
|
|
25
29
|
exports.free(ptr, length);
|
|
26
30
|
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
(exports.memory.buffer.byteLength - ptrToCompressed)
|
|
32
|
-
)
|
|
33
|
-
);
|
|
34
|
-
const streamLength = (buffer.at(0)! << 16) + buffer.at(1)!;
|
|
35
|
-
// Includes the tokenCount at the start of the stream (2 * u16).
|
|
36
|
-
const compressedBuffer = buffer.slice(2, streamLength);
|
|
31
|
+
const { start, end, capacity } = extractFooter(exports.memory, ptrToFooter);
|
|
32
|
+
|
|
33
|
+
// Includes the tokenCount at the end of the stream (2 * u16).
|
|
34
|
+
const compressed = new Uint16Array(exports.memory.buffer.slice(start, end));
|
|
37
35
|
|
|
38
|
-
const
|
|
36
|
+
const r = Uint16ArraytoString(compressed);
|
|
39
37
|
|
|
40
|
-
exports.free(
|
|
38
|
+
exports.free(start, capacity);
|
|
41
39
|
|
|
42
|
-
return
|
|
40
|
+
return r;
|
|
43
41
|
}
|
|
44
42
|
|
|
45
43
|
export function decompressPacked(compressedStr: string) {
|
|
46
44
|
const tokenCount =
|
|
47
|
-
(compressedStr.charCodeAt(
|
|
45
|
+
(compressedStr.charCodeAt(compressedStr.length - 1)! << 16) +
|
|
46
|
+
compressedStr.charCodeAt(compressedStr.length - 2);
|
|
48
47
|
|
|
49
48
|
let ptrToCompressed = exports.allocUint16(compressedStr.length - 2);
|
|
50
49
|
let compressed_buffer = new Uint16Array(
|
|
@@ -53,31 +52,22 @@ export function decompressPacked(compressedStr: string) {
|
|
|
53
52
|
compressedStr.length - 2
|
|
54
53
|
);
|
|
55
54
|
|
|
56
|
-
for (let i =
|
|
57
|
-
compressed_buffer[i
|
|
55
|
+
for (let i = 0; i < compressedStr.length - 2; i++)
|
|
56
|
+
compressed_buffer[i] = compressedStr.charCodeAt(i);
|
|
58
57
|
|
|
59
|
-
const
|
|
58
|
+
const ptrToFooter = exports.decompressPacked(
|
|
60
59
|
ptrToCompressed,
|
|
61
|
-
compressedStr.length,
|
|
60
|
+
compressedStr.length - 2,
|
|
62
61
|
tokenCount
|
|
63
62
|
);
|
|
64
63
|
|
|
65
|
-
exports.free(ptrToCompressed, compressedStr.length);
|
|
64
|
+
exports.free(ptrToCompressed, compressedStr.length - 2);
|
|
66
65
|
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
ptrToDecompressedNullTerminated +
|
|
71
|
-
(exports.memory.buffer.byteLength -
|
|
72
|
-
ptrToDecompressedNullTerminated)
|
|
73
|
-
)
|
|
74
|
-
);
|
|
75
|
-
const decompressed_end = decompressed_buffer.indexOf(0);
|
|
76
|
-
const r = new TextDecoder().decode(
|
|
77
|
-
decompressed_buffer.slice(0, decompressed_end)
|
|
78
|
-
);
|
|
66
|
+
const { start, end, capacity } = extractFooter(exports.memory, ptrToFooter);
|
|
67
|
+
const content = new Uint8Array(exports.memory.buffer.slice(start, end));
|
|
68
|
+
const r = new TextDecoder().decode(content);
|
|
79
69
|
|
|
80
|
-
exports.free(
|
|
70
|
+
exports.free(start, capacity);
|
|
81
71
|
|
|
82
72
|
return r;
|
|
83
73
|
}
|
|
@@ -7,24 +7,21 @@ let nextID = 0;
|
|
|
7
7
|
const resolver: Record<number, (str: string) => void> = {};
|
|
8
8
|
|
|
9
9
|
worker.onmessage = function (e: { data: { id: number; data: string } }) {
|
|
10
|
-
console.log("onmessage", e);
|
|
11
10
|
const id = e.data.id;
|
|
12
11
|
resolver[id](e.data.data);
|
|
13
12
|
delete resolver[id];
|
|
14
13
|
};
|
|
15
14
|
|
|
16
|
-
export async function
|
|
15
|
+
export async function compressPacked(data: string) {
|
|
17
16
|
const id = nextID++;
|
|
18
|
-
console.log("compress", id);
|
|
19
17
|
return new Promise((resolve) => {
|
|
20
18
|
resolver[id] = resolve;
|
|
21
19
|
worker.postMessage({ command: "compress", id, data });
|
|
22
20
|
});
|
|
23
21
|
}
|
|
24
22
|
|
|
25
|
-
export async function
|
|
23
|
+
export async function decompressPacked(data: string) {
|
|
26
24
|
const id = nextID++;
|
|
27
|
-
console.log("decompress", id);
|
|
28
25
|
return new Promise((resolve) => {
|
|
29
26
|
resolver[id] = resolve;
|
|
30
27
|
worker.postMessage({ command: "decompress", id, data });
|
|
@@ -7,7 +7,6 @@ let nextID = 0;
|
|
|
7
7
|
const resolver: Record<number, (str: string) => void> = {};
|
|
8
8
|
|
|
9
9
|
worker.onmessage = function (e: { data: { id: number; data: string } }) {
|
|
10
|
-
console.log("onmessage", e);
|
|
11
10
|
const id = e.data.id;
|
|
12
11
|
resolver[id](e.data.data);
|
|
13
12
|
delete resolver[id];
|
|
@@ -15,7 +14,6 @@ worker.onmessage = function (e: { data: { id: number; data: string } }) {
|
|
|
15
14
|
|
|
16
15
|
export async function compress(data: string) {
|
|
17
16
|
const id = nextID++;
|
|
18
|
-
console.log("compress", id);
|
|
19
17
|
return new Promise((resolve) => {
|
|
20
18
|
resolver[id] = resolve;
|
|
21
19
|
worker.postMessage({ command: "compress", id, data });
|
|
@@ -24,7 +22,6 @@ export async function compress(data: string) {
|
|
|
24
22
|
|
|
25
23
|
export async function decompress(data: string) {
|
|
26
24
|
const id = nextID++;
|
|
27
|
-
console.log("decompress", id);
|
|
28
25
|
return new Promise((resolve) => {
|
|
29
26
|
resolver[id] = resolve;
|
|
30
27
|
worker.postMessage({ command: "decompress", id, data });
|
package/src/smol-string.ts
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
Uint16ArraytoString,
|
|
3
|
+
copyToWasmBuffer,
|
|
4
|
+
extractFooter,
|
|
5
|
+
} from "./common.js";
|
|
2
6
|
import init from "./module.wasm?init";
|
|
3
7
|
|
|
4
8
|
type exportsType = {
|
|
5
9
|
allocUint8: (size: number) => number;
|
|
6
10
|
allocUint16: (size: number) => number;
|
|
7
|
-
compress: (ptr: number) => number;
|
|
8
|
-
decompress: (ptr: number) => number;
|
|
11
|
+
compress: (ptr: number, length: number) => number;
|
|
12
|
+
decompress: (ptr: number, length: number) => number;
|
|
9
13
|
free: (ptr: number, length: number) => void;
|
|
10
|
-
memory:
|
|
14
|
+
memory: WebAssembly.Memory;
|
|
11
15
|
};
|
|
12
16
|
|
|
13
17
|
const instance = await init();
|
|
@@ -16,61 +20,42 @@ const exports = instance.exports as exportsType;
|
|
|
16
20
|
export function compress(str: string) {
|
|
17
21
|
const { ptr, length } = copyToWasmBuffer(str, exports);
|
|
18
22
|
|
|
19
|
-
const
|
|
23
|
+
const ptrToFooter = exports.compress(ptr, length);
|
|
20
24
|
|
|
21
25
|
exports.free(ptr, length);
|
|
22
26
|
|
|
23
|
-
const
|
|
24
|
-
exports.memory.buffer.slice(
|
|
25
|
-
ptrToCompressed,
|
|
26
|
-
ptrToCompressed +
|
|
27
|
-
(exports.memory.buffer.byteLength - ptrToCompressed)
|
|
28
|
-
)
|
|
29
|
-
);
|
|
30
|
-
const end = buffer.indexOf(0);
|
|
31
|
-
const compressed = buffer.slice(0, end);
|
|
27
|
+
const { start, end, capacity } = extractFooter(exports.memory, ptrToFooter);
|
|
32
28
|
|
|
33
|
-
const
|
|
29
|
+
const content = new Uint16Array(exports.memory.buffer.slice(start, end));
|
|
30
|
+
const r = Uint16ArraytoString(content);
|
|
34
31
|
|
|
35
|
-
exports.free(
|
|
32
|
+
exports.free(start, capacity);
|
|
36
33
|
|
|
37
34
|
return r;
|
|
38
35
|
}
|
|
39
36
|
|
|
40
37
|
export function decompress(compressedStr: string) {
|
|
41
|
-
const
|
|
42
|
-
compressedStr.length + 1
|
|
43
|
-
);
|
|
38
|
+
const ptrToCompressed = exports.allocUint16(compressedStr.length);
|
|
44
39
|
const compressed_buffer = new Uint16Array(
|
|
45
40
|
exports.memory.buffer,
|
|
46
|
-
|
|
47
|
-
compressedStr.length
|
|
41
|
+
ptrToCompressed,
|
|
42
|
+
compressedStr.length
|
|
48
43
|
);
|
|
49
44
|
for (let i = 0; i < compressedStr.length; i++)
|
|
50
45
|
compressed_buffer[i] = compressedStr.charCodeAt(i);
|
|
51
|
-
compressed_buffer[compressedStr.length] = 0;
|
|
52
46
|
|
|
53
|
-
const
|
|
54
|
-
|
|
47
|
+
const ptrToFooter = exports.decompress(
|
|
48
|
+
ptrToCompressed,
|
|
49
|
+
compressedStr.length
|
|
55
50
|
);
|
|
56
51
|
|
|
57
|
-
exports.free(
|
|
52
|
+
exports.free(ptrToCompressed, compressedStr.length);
|
|
58
53
|
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
ptrToDecompressedNullTerminated +
|
|
63
|
-
(exports.memory.buffer.byteLength -
|
|
64
|
-
ptrToDecompressedNullTerminated)
|
|
65
|
-
)
|
|
66
|
-
);
|
|
67
|
-
const decompressed_end = decompressed_buffer.indexOf(0);
|
|
54
|
+
const { start, end, capacity } = extractFooter(exports.memory, ptrToFooter);
|
|
55
|
+
const content = new Uint8Array(exports.memory.buffer.slice(start, end));
|
|
56
|
+
const r = new TextDecoder().decode(content);
|
|
68
57
|
|
|
69
|
-
exports.free(
|
|
70
|
-
|
|
71
|
-
const r = new TextDecoder().decode(
|
|
72
|
-
decompressed_buffer.slice(0, decompressed_end)
|
|
73
|
-
);
|
|
58
|
+
exports.free(start, capacity);
|
|
74
59
|
|
|
75
60
|
return r;
|
|
76
61
|
}
|
package/test/basic.test.ts
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import { describe, expect, test } from "vitest";
|
|
2
|
-
|
|
3
|
-
import { TestData } from "./common.js";
|
|
4
|
-
|
|
5
|
-
import { compress, decompress } from "../dist/smol-string.js";
|
|
6
|
-
import {
|
|
7
|
-
compressPacked,
|
|
8
|
-
decompressPacked,
|
|
9
|
-
} from "../dist/smol-string-packed.js";
|
|
10
|
-
|
|
11
|
-
describe("compress and decompress", () => {
|
|
12
|
-
for (const { name, input } of TestData) {
|
|
13
|
-
test(name, async () => {
|
|
14
|
-
const compressed = compress(input);
|
|
15
|
-
const decompressed = decompress(compressed);
|
|
16
|
-
expect(decompressed).toBe(input);
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
describe("compressPacked and decompressPacked", () => {
|
|
22
|
-
for (const { name, input } of TestData) {
|
|
23
|
-
test(name, async () => {
|
|
24
|
-
const compressed = compressPacked(input);
|
|
25
|
-
const decompressed = decompressPacked(compressed);
|
|
26
|
-
expect(decompressed).toBe(input);
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
});
|
|
1
|
+
import { describe, expect, test } from "vitest";
|
|
2
|
+
|
|
3
|
+
import { TestData } from "./common.js";
|
|
4
|
+
|
|
5
|
+
import { compress, decompress } from "../dist/smol-string.js";
|
|
6
|
+
import {
|
|
7
|
+
compressPacked,
|
|
8
|
+
decompressPacked,
|
|
9
|
+
} from "../dist/smol-string-packed.js";
|
|
10
|
+
|
|
11
|
+
describe("compress and decompress", () => {
|
|
12
|
+
for (const { name, input } of TestData) {
|
|
13
|
+
test(name, async () => {
|
|
14
|
+
const compressed = compress(input);
|
|
15
|
+
const decompressed = decompress(compressed);
|
|
16
|
+
expect(decompressed).toBe(input);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
describe("compressPacked and decompressPacked", () => {
|
|
22
|
+
for (const { name, input } of TestData) {
|
|
23
|
+
test(name, async () => {
|
|
24
|
+
const compressed = compressPacked(input);
|
|
25
|
+
const decompressed = decompressPacked(compressed);
|
|
26
|
+
expect(decompressed).toBe(input);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
});
|
package/test/common.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
export const json_512kb = import("../../test/data/512KB.json");
|
|
2
|
-
export const json_1mb = import("../../test/data/1MB.json");
|
|
3
|
-
export const rw_medium = import("../../test/data/rw_medium.json");
|
|
4
|
-
export const rw_large = import("../../test/data/rw_large.json");
|
|
5
|
-
|
|
6
|
-
export const TestData = [
|
|
7
|
-
{
|
|
8
|
-
name: "Simple String",
|
|
9
|
-
input: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum",
|
|
10
|
-
},
|
|
11
|
-
{ name: "json_512kb", input: JSON.stringify(await json_512kb) },
|
|
12
|
-
{ name: "json_1mb", input: JSON.stringify(await json_1mb) },
|
|
13
|
-
{ name: "rw_medium", input: JSON.stringify(await rw_medium) },
|
|
14
|
-
{ name: "rw_large", input: JSON.stringify(await rw_large) },
|
|
15
|
-
];
|
|
1
|
+
export const json_512kb = import("../../test/data/512KB.json");
|
|
2
|
+
export const json_1mb = import("../../test/data/1MB.json");
|
|
3
|
+
export const rw_medium = import("../../test/data/rw_medium.json");
|
|
4
|
+
export const rw_large = import("../../test/data/rw_large.json");
|
|
5
|
+
|
|
6
|
+
export const TestData = [
|
|
7
|
+
{
|
|
8
|
+
name: "Simple String",
|
|
9
|
+
input: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum",
|
|
10
|
+
},
|
|
11
|
+
{ name: "json_512kb", input: JSON.stringify(await json_512kb) },
|
|
12
|
+
{ name: "json_1mb", input: JSON.stringify(await json_1mb) },
|
|
13
|
+
{ name: "rw_medium", input: JSON.stringify(await rw_medium) },
|
|
14
|
+
{ name: "rw_large", input: JSON.stringify(await rw_large) },
|
|
15
|
+
];
|