tyson
json5-spec
tyson | json5-spec | |
---|---|---|
11 | 7 | |
530 | 49 | |
0.8% | - | |
6.9 | 2.2 | |
about 1 month ago | about 1 year ago | |
Go | HTML | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
tyson
- TySON: TypeScript Object Notation
- TySON (TypeScript Object Notation)
- TySON: Use TypeScript as a Configuration Language
-
Rethinking Infrastructure as Code from Scratch
I have a similar view to yours: as soon as you need variables, imports, functions or any other type of logic ... the existing "data-only" formats break down. Over time people either invent new configuration languages that enable logic (i.e. cue or jsonnet), or they try to bolt-in some limited version of these primitives into their configuration.
My personal take is that at some point you are better of just using a full programming langugage like TypeScript. We created TySON https://github.com/jetpack-io/tyson to experiment with that idea.
- Show HN: TySON – TypeScript as Configuration
- TySON: a native go library that lets you use TypeScript as an embedded configuration language without depending on Node or V8
-
TySON: TypeScript as an embeddable configuration language, without depending on Node or V8
Apparently "not depending on Node or V8" means depending on some random Go JS engine instead.
json5-spec
- Building a high performance JSON parser
-
TySON: a native go library that lets you use TypeScript as an embedded configuration language without depending on Node or V8
One of the larger issues I've run into is duplicates. Douglas Crockford, JSON's inventor, tried to fix the duplicate issue but it was decided it was too late. Although Douglas Crockford couldn't change the spec forcing all implementations to error on duplicate, his Java JSON implementation errors on duplicates. Others use last-value-wins, support duplicate keys, or other non-standard behavior. The JSON RFC states that implementations should not allow duplicate keys, notes the varying behavior of existing implementations, and states that when names are not unique, "the behavior of software that receives such an object is unpredictable." Duplicate fields are a security issue, a source of bugs, and a surprising behavior to users. See the article, "An Exploration of JSON Interoperability Vulnerabilities" Disallowing duplicates conforms to the small I-JSON RFC, which is a stricter JSON. The author of I-JSON, Tim Bray, is also the author of JSON RFC 8259. See also the JSON5 duplicate issue.
- JavaScript Gom Jabbar
-
SQLite Release 3.42.0
Virtually any sequence is not the same as adopting a specification five years after it’s been published and adopted by industry: https://spec.json5.org/
I appreciate that SQLite can’t write the format, because those changes are human afordances
-
The yaml document from hell
That's why you pick a superset of JSON that already has some adoption, like JSON5: https://spec.json5.org/
-
Don't Pickle Your Data
The "dual" standard RFC 8259 [1] (both are normative standards under their respective bodies, ECMA and IETF) is also a useful comparison here. It's wording is a bit stronger than ECMA's, though not by much. ("Good interoperability" is its specific call out.)
It's also interesting that the proposed JSON 5 (standalone) specification [2] doesn't seem to address it at all (but does add back in the other IEEE 754 numbers that ECMA 404 and RFC 8259 exclude from JSON; +/-Infinity and +/-NaN). It both maintains that its numbers are "arbitrary precision" but also requires these few IEEE 754 features, which may be even more confusing than either ECMA 404 or RFC 8259.
[1] https://datatracker.ietf.org/doc/html/rfc8259#section-6
[2] https://spec.json5.org/#numbers
-
JSON Creator Douglas Crockford Interview
For anyone coming back to this, I just wrote a small proposal to define JSON5 duplicate object name behavior. I'd love any support on the issue:
https://github.com/json5/json5-spec/issues/38
What are some alternatives?
cdk-ecs-service-extensions
aqua - Declarative CLI Version manager written in Go. Support Lazy Install, Registry, and continuous update with Renovate. CLI version is switched seamlessly
json5 - JSON5 — JSON for Humans
jsb - Fast json <=> binary serializer library for C
gookit/config - 📝 Go configuration manage(load,get,set,export). support JSON, YAML, TOML, Properties, INI, HCL, ENV and Flags. Multi file load, data override merge, parse ENV var. Go应用配置加载管理,支持多种格式,多文件加载,远程文件加载,支持数据合并,解析环境变量名
lua-sandbox - A lua sandbox for executing non-trusted code
dhall-lang - Maintainable configuration files
parcel - The zero configuration build tool for the web. 📦🚀
goConfig - goconfig uses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file.
go-jsonschema - A tool to generate Go data types from JSON Schema definitions.
goja - ECMAScript/JavaScript engine in pure Go
sonic - A blazingly fast JSON serializing & deserializing library