rusteerio 0.1.0 → 1.0.0
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/Cargo.lock +1 -1
- package/Cargo.toml +1 -1
- package/README.md +7 -0
- package/RELEASING.md +22 -46
- package/THIRD_PARTY_NOTICES.md +1 -1
- package/dist/{chunk-DKULX6VO.mjs → chunk-DMRD3FGC.mjs} +1 -1
- package/dist/chunk-DMRD3FGC.mjs.map +1 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/slim.cjs.map +1 -1
- package/dist/slim.mjs +1 -1
- package/native/src/arena.rs +42 -13
- package/native/src/lib.rs +187 -17
- package/package.json +1 -1
- package/rusteerio.darwin-arm64.node +0 -0
- package/rusteerio.darwin-x64.node +0 -0
- package/rusteerio.linux-arm64-gnu.node +0 -0
- package/rusteerio.linux-arm64-musl.node +0 -0
- package/rusteerio.linux-x64-gnu.node +0 -0
- package/rusteerio.linux-x64-musl.node +0 -0
- package/rusteerio.win32-arm64-msvc.node +0 -0
- package/rusteerio.win32-x64-msvc.node +0 -0
- package/src/router.ts +3 -2
- package/dist/chunk-DKULX6VO.mjs.map +0 -1
package/Cargo.lock
CHANGED
package/Cargo.toml
CHANGED
package/README.md
CHANGED
|
@@ -147,6 +147,13 @@ Fresh Rust-backed nodes have Rusteerio's constructors: an `instanceof` check
|
|
|
147
147
|
against an independently installed `domhandler.Element` requires importing those
|
|
148
148
|
nodes or supplying a tree adapter that creates that class.
|
|
149
149
|
|
|
150
|
+
Each document reports its approximate native size to V8, so the garbage
|
|
151
|
+
collector reclaims unreachable documents under native memory pressure. Node.js
|
|
152
|
+
frees native memory after the current task completes. A long synchronous loop,
|
|
153
|
+
or a chain of already-resolved `await`s, that loads many large documents should
|
|
154
|
+
yield to the event loop periodically, for example with `await setImmediate()`
|
|
155
|
+
from `node:timers/promises`.
|
|
156
|
+
|
|
150
157
|
## Benchmarks
|
|
151
158
|
|
|
152
159
|
These measurements compare **Cheerio 1.2.0** against rusteerio on a Linux x64
|
package/RELEASING.md
CHANGED
|
@@ -5,44 +5,14 @@ team. Releases include all eight native binaries, self-contained TypeScript
|
|
|
5
5
|
declarations, source files and license notices. Consumers install no additional
|
|
6
6
|
npm packages and need no Rust toolchain on supported platforms.
|
|
7
7
|
|
|
8
|
-
##
|
|
8
|
+
## Trusted publishing
|
|
9
9
|
|
|
10
10
|
The repository must be publicly visible for the publishing workflow's
|
|
11
|
-
provenance checks. The
|
|
12
|
-
|
|
11
|
+
provenance checks. The workflow publishes exclusively through npm trusted
|
|
12
|
+
publishing with OIDC; it has no token-authentication or bootstrap path.
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
registry before any builds start. The default mode uses OIDC and remains token
|
|
17
|
-
free.
|
|
18
|
-
|
|
19
|
-
Create a granular npm token with **Read and write (publish and stage)** access,
|
|
20
|
-
**Bypass two-factor authentication**, and a one-day expiration. Select only
|
|
21
|
-
`rusteerio` if npm permits it; an unpublished package may require temporary
|
|
22
|
-
**All Packages** access. Organization-management access is unnecessary. Store
|
|
23
|
-
the value only in the GitHub `npm` environment's `NPM_BOOTSTRAP_TOKEN` secret. Never commit the
|
|
24
|
-
token or put its value in commands or logs. See [npm's token
|
|
25
|
-
documentation](https://docs.npmjs.com/creating-and-viewing-access-tokens/).
|
|
26
|
-
|
|
27
|
-
Prepare and tag the exact release commit as described below, then dispatch:
|
|
28
|
-
|
|
29
|
-
```sh
|
|
30
|
-
gh workflow run publish.yml \
|
|
31
|
-
--repo context-dot-dev/rusteerio \
|
|
32
|
-
--ref main \
|
|
33
|
-
-f version=0.1.0 \
|
|
34
|
-
-f npm_tag=latest \
|
|
35
|
-
-f bootstrap=true
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
Bootstrap mode runs the same fresh eight-platform matrix, manifest/source
|
|
39
|
-
checks and clean-consumer tests as OIDC mode. Only its final publish step
|
|
40
|
-
receives the token. Both modes publish the exact tested tarball with GitHub
|
|
41
|
-
Actions provenance. A locally built tarball may contain only one platform's
|
|
42
|
-
binary and is not the release artifact.
|
|
43
|
-
|
|
44
|
-
After the package exists, configure its GitHub Actions trusted publisher in npm
|
|
45
|
-
package settings:
|
|
14
|
+
Configure the GitHub Actions trusted publisher in the existing npm package's
|
|
15
|
+
settings:
|
|
46
16
|
|
|
47
17
|
| Field | Value |
|
|
48
18
|
| --- | --- |
|
|
@@ -52,17 +22,23 @@ package settings:
|
|
|
52
22
|
| Environment | `npm` |
|
|
53
23
|
| Allowed action | Direct publishing with `npm publish` |
|
|
54
24
|
|
|
55
|
-
After configuring the trusted publisher, revoke the bootstrap token in npm and
|
|
56
|
-
delete `NPM_BOOTSTRAP_TOKEN` from the GitHub environment. Leave `bootstrap` false
|
|
57
|
-
for subsequent releases; the registry-existence guard prevents its reuse.
|
|
58
|
-
|
|
59
25
|
Configure the GitHub `npm` environment for maintainers and permit releases from
|
|
60
26
|
`main`. The workflow uses GitHub-hosted runners, Node 24, npm 11.5.1 or newer,
|
|
61
|
-
and OIDC authentication.
|
|
62
|
-
|
|
27
|
+
and OIDC authentication. It requires no stored npm token.
|
|
28
|
+
|
|
29
|
+
A new trusted-publisher configuration must complete its first successful
|
|
30
|
+
publication within two days. Prepare and publish a new version within that
|
|
31
|
+
window; an existing npm version cannot be republished to validate the
|
|
32
|
+
configuration. If it expires, delete and recreate it when the next release is
|
|
33
|
+
ready. See [npm's trusted-publishing
|
|
63
34
|
documentation](https://docs.npmjs.com/trusted-publishers/) for configuration and
|
|
64
35
|
expiry details.
|
|
65
36
|
|
|
37
|
+
After the first successful OIDC release, revoke the obsolete bootstrap token
|
|
38
|
+
in npm and delete `NPM_BOOTSTRAP_TOKEN` from the GitHub `npm` environment. That
|
|
39
|
+
credential was used only to establish initial package ownership and is not
|
|
40
|
+
needed by this workflow.
|
|
41
|
+
|
|
66
42
|
## Prepare a version
|
|
67
43
|
|
|
68
44
|
Update `package.json`, `package-lock.json`, `Cargo.toml` and `Cargo.lock` to the
|
|
@@ -75,15 +51,15 @@ Create a version tag on the current `main` commit:
|
|
|
75
51
|
```sh
|
|
76
52
|
git switch main
|
|
77
53
|
git pull --ff-only
|
|
78
|
-
git tag v0.1.
|
|
79
|
-
git push origin v0.1.
|
|
54
|
+
git tag v0.1.1
|
|
55
|
+
git push origin v0.1.1
|
|
80
56
|
```
|
|
81
57
|
|
|
82
|
-
Replace `0.1.
|
|
58
|
+
Replace `0.1.1` with the intended version. Dispatch publication before making
|
|
83
59
|
another commit to `main`: the tag, package version, Cargo version and the
|
|
84
60
|
workflow's `main` commit must identify the same release.
|
|
85
61
|
|
|
86
|
-
## Publish a
|
|
62
|
+
## Publish a release
|
|
87
63
|
|
|
88
64
|
Run the **Publish to npm** workflow from `main`, with the exact package version
|
|
89
65
|
and npm dist-tag:
|
|
@@ -92,7 +68,7 @@ and npm dist-tag:
|
|
|
92
68
|
gh workflow run publish.yml \
|
|
93
69
|
--repo context-dot-dev/rusteerio \
|
|
94
70
|
--ref main \
|
|
95
|
-
-f version=0.1.
|
|
71
|
+
-f version=0.1.1 \
|
|
96
72
|
-f npm_tag=latest
|
|
97
73
|
```
|
|
98
74
|
|
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -4,7 +4,7 @@ This file preserves third-party license and attribution notices for the Rust nat
|
|
|
4
4
|
|
|
5
5
|
Generated by `node scripts/generate-notices.mjs` from `cargo metadata --locked`, crate license files, and the pinned supplemental sources recorded in `scripts/notices/sources.json`. It includes build dependencies and dependencies for all target platforms; a particular binary may use a subset. Identical notice texts are reproduced once and referenced below. The html5ever, markup5ever and html5gum crates contain local observer-hook and opt-in UTF-16 transport patches; their complete patched source and original notices are included in `native/vendor`. Other dependency source files are unmodified.
|
|
6
6
|
|
|
7
|
-
Cargo.lock SHA-256: `
|
|
7
|
+
Cargo.lock SHA-256: `972c2efc036e05a48803d6631cfd4f6026989898043bbd9aaf68bb52449c1716`.
|
|
8
8
|
|
|
9
9
|
## Source availability
|
|
10
10
|
|