<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Javascript on BXM.net</title>
    <link>https://bxm.net/tags/javascript/</link>
    <description>Recent content in Javascript on BXM.net</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Thu, 22 Oct 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://bxm.net/tags/javascript/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>BXM Canon 0.2.0 Brings the Same Bytes to JavaScript With One Rust Core Compiled to WebAssembly</title>
      <link>https://bxm.net/bxm-canon-0.2.0-brings-the-same-bytes-to-javascript-with-one-rust-core-compiled-to-webassembly/</link>
      <pubDate>Thu, 22 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://bxm.net/bxm-canon-0.2.0-brings-the-same-bytes-to-javascript-with-one-rust-core-compiled-to-webassembly/</guid>
      <description>&lt;p&gt;BXM Canon 0.2.0 adds a JavaScript package. It runs in Node 18 and later and in browsers, and it gives exactly the bytes and hashes the &lt;code&gt;bxm-canon&lt;/code&gt; command gives, because it is the same Rust code compiled to WebAssembly.&lt;/p&gt;&#xA;&lt;p&gt;That matters more for Canon than for most libraries. A canonical encoding is only as good as the agreement between the programs that use it. If the Node service and the Go service each carry their own implementation, a single corner case they read differently, a float spelled one way or a key compared another, brings back the problem Canon exists to remove.&lt;/p&gt;</description>
    </item>
    <item>
      <title>One Order Built in Python, JavaScript and by Hand Gives Three JSON Hashes and One Canon Hash</title>
      <link>https://bxm.net/one-order-built-in-python-javascript-and-by-hand-gives-three-json-hashes-and-one-canon-hash/</link>
      <pubDate>Thu, 22 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://bxm.net/one-order-built-in-python-javascript-and-by-hand-gives-three-json-hashes-and-one-canon-hash/</guid>
      <description>&lt;p&gt;A checkout service written in Python signs each order before it hands it on. A fulfilment service written in JavaScript checks the signature before it ships anything. Both have the same order in memory. The question is whether they agree on its bytes.&lt;/p&gt;&#xA;&lt;p&gt;We built one order three ways. Python filled a dict in the order its code reads, and &lt;code&gt;json.dumps&lt;/code&gt; wrote it with its defaults: a space after every comma and colon, and &amp;ldquo;Zürich&amp;rdquo; escaped as &lt;code&gt;Z\u00fcrich&lt;/code&gt;. JavaScript built the same object with its keys in another order, and &lt;code&gt;JSON.stringify&lt;/code&gt; wrote it compactly with the ü left as it is. The third copy is a file written by hand, pretty-printed, with yet another key order, hashed with the &lt;code&gt;bxm-canon&lt;/code&gt; command.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
