This page is a routing layer, not a substitute for the language READMEs.
The purpose is to give the current package names, import surfaces, and the core codec concepts that are shared across implementations.
| Language | Package | Primary Doc |
|---|---|---|
| Python | glyph-py |
../py/README.md |
| Go | github.com/Neumenon/glyph |
../go/README.md |
| JavaScript / TypeScript | cowrie-glyph |
../js/README.md |
| Rust | glyph-rs |
../rust/glyph-codec/README.md |
| C | source build | ../c/glyph-codec/README.md |
Every implementation revolves around the same layers:
- parse or bridge JSON-compatible data
- canonicalize to a deterministic text form
- fingerprint the canonical form
Typical operations:
from_json/fromJson/FromJSONLooseto_json/toJson/ToJSONLoosecanonicalize_loose/canonicalizeLoose/CanonicalizeLoosefingerprint_loose/fingerprintLoose/FingerprintLoose
Implementations expose a typed value model with:
- null / bool / int / float / string
- bytes / time / ref ID
- list / map / struct / sum
Where implemented, the schema layer covers:
- packed encoding
- tabular encoding
- patch encoding
- schema evolution helpers
The streaming layer covers:
- GS1 framing
- stream cursors / readers / writers
- UI event frames
- streaming validator for incremental tool validation
import glyph
data = {"name": "Alice", "scores": [95, 87, 92]}
text = glyph.json_to_glyph(data)
value = glyph.parse(text)
fingerprint = glyph.fingerprint_loose(glyph.from_json(data))Use the glyph module after installing glyph-py. The Python README is the current source of truth for the shipped Python surface.
The module is github.com/Neumenon/glyph. Import the codec package as:
import "github.com/Neumenon/glyph/glyph"Install cowrie-glyph. The package exports loose-mode helpers, schema helpers, patch utilities, stream helpers, and the streaming validator.
Install glyph-rs. In code, import it as glyph_rs.
Build the library from c/glyph-codec/ and include glyph.h.
This reference intentionally avoids duplicating large API tables that tend to drift. For implementation details, use:
- the language README
- the spec docs
- the source itself