docs: add shorn to the ecosystem page - #1649
Open
ChiChuRita wants to merge 1 commit into
Open
Conversation
Contributor
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes
ark/docs/content/docs/ecosystem/index.mdx— adds a### shornsection (after DRZL) with a prose intro, a// @noErrorsArkType example, and a closing callout about open objects /"+": "delete".ark/docs/content/docs/ecosystem/meta.json— appends the[shorn](/docs/ecosystem#shorn)entry to thepagesarray.
I verified every substantive claim rather than taking them on trust:
- The "ArkType 2.1.28 and newer implements both Standard Schema and Standard JSON Schema" floor matches the
ark/typeCHANGELOG (2.1.28: "Standard Schema is now a valid definition" + "Adds support for the new Standard JSON Schema interface"). - The claim that ArkType omits
additionalProperties: falsefor object JSON Schema output matches the~standard.jsonSchema/toJsonSchema()test snapshots (objects emitproperties+requiredonly). - The section and
meta.jsonentry follow the page's established structure and naming conventions (heading → lowercased anchor,// @noErrorsdecorator, tab-indented object props). - The example code compiles against ArkType/CSS syntax (
number.integer >= 0,"'M' | 'F' | 'X'"), and shorn's public docs confirm theencode/decodeAPI, the Standard Schema + Standard JSON Schema mechanism, the 2.1.28 floor, the"+": "delete"guidance, and the "8 bytes vs 35 bytes JSON" figures.
ℹ️ Experimental library placement
shorn is at 0.1.0 with a wire format that isn't frozen until 1.0. The author already flagged this and offered to close the PR if the ecosystem page is meant for stable libraries only. Nothing in the docs is inaccurate or misrepresented on this point, but the maintainers should consciously decide whether to feature an experimental serialization format whose encoded bytes are not yet stable — a reader who adopts it now will need to re-encode data after 1.0. This is a policy call for the maintainers, not a defect in the PR.
DeepSeek Flash (free via Pullfrog for OSS) | 𝕏
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Adds a
### shornsection to the ecosystem page, after DRZL, and the matching entry inmeta.json.shorn uses an ArkType type as a binary wire format. The
Persontype in the example holds a record that is 35 bytes of minified JSON and 8 bytes through shorn. Field names and type tags stay off the wire because the type already carries them, so there is no IDL and nothing to generate.Nothing in shorn is ArkType-specific. It reads Standard Schema for validation and Standard JSON Schema for structure, which is why 2.1.28 is the floor. Golden test vectors pin the exact bytes across ArkType, Zod and Valibot, so equivalent types in any of the three encode identically. The one ArkType-shaped detail is open objects: since ArkType does not emit
additionalProperties: false, shorn checks for undeclared properties at encode time and rejects them instead of silently dropping data. That is what the closing note covers.Docs: https://shorn.dev
ArkType guide: https://shorn.dev/validators/arktype/
Repo: https://github.com/ChiChuRita/shorn
npm:
@chichurita/shornWorth flagging: shorn is at 0.1.0 and describes itself as experimental. The wire format is not frozen until 1.0. If the page is meant for stable libraries only, I am happy to close this and open it again later.