
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
Special thanks to James R Swift for creating the specifications and implementing the original SCON format
SCON3 is an extendable binary object serialization format created to store and transfer data more efficiently than the popular JSON standard. Created by Aritz J Beobide-Cardinal (ARitz Cracker).
This repo implements the SCON3 format in JS. While using zero(ish) dependencies. (Requires NodeJS-like buffer objects. Check out buffer-lite for web browser use!)
BigInt support no need for you to toString them and parse afterwardsDate support, no need for you to construct them yourselfBuffer support. Transparently encoded binary data, woo!Set supportMap supportObjects or Maps), while with pbf you'll have to encode them as parallel arrays yourself.npm install scon
A website containing reference documentation is "coming soon™". For now, you can check out the JS doc comments everywhere.
Here's a basic example...
const {encode, decode, SconEncoder, SconDecoder} = require("scon");
// Encode/decode with default options
const defaultEncoded = encode({hello: "world!"});
console.log(defaultEncoded); // <Buffer 07 53 43 33 e0 b0 68 65 6c 6c 6f 00 77 6f 72 6c 64 21 00 00>
const defaultDecoded = decode(defaultEncoded);
console.log(defaultDecoded); // { hello: 'world!' }
// Encode with non-string map keys enabled, and without magic number
const sconEnc = new SconEncoder({anyMapKey: true, magicNumber: false});
const anyMapKeyEncoded = sconEnc.encode(new Map([[0, 1]]));
console.log(anyMapKeyEncoded); // <Buffer f8 02 f0 80 00 80 01 00 00>
// Decode without magic number
const sconDec = new SconDecoder({magicNumber: false});
const anyMapKeyDecoded = sconDec.decode(anyMapKeyEncoded);
console.log(anyMapKeyDecoded); // Map(1) { 0 => 1 }
Pull requests are welcome! Please ensure npm run test:full succeeds before submitting any. That ensures that the code follows the coding style (as enforced by npm run lint) and that all test succeed with 100% code coverage (as enforced by npm run test:cov)
3.0.0
Date Set and Map objectsBuffers again. Good thing there's buffer-lite2.1.2
undefined values2.1.1
2.1.0
2.0.1
2.0.0
1.1.0 Ints now take up less bytes depending on how big they are. Also, bugfixes.
1.0.3 Added TravisCI intergration and tests
1.0.2 Added support for NaN and 64 bit floats
1.0.0 Added support for arrays, booleans, and nulls!
0.9.2 ???
0.9.0 Major update in module structure, and added error handling.
0.8.2 Removed left over tests.
0.8.0 Initial release
FAQs
Read and write scon files
We found that scon demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.