Skip to content

Licensing

JSTime itself is MIT-licensed.

JSTime statically links JavaScriptCore (and WebKit) which is LGPL-2 licensed. WebCore files from WebKit are also licensed under LGPL2. Per LGPL2:

(1) If you statically link against an LGPL’d library, you must also provide your application in an object (not necessarily source) format, so that a user has the opportunity to modify the library and relink the application.

You can find the patched version of WebKit used by JSTime here: . If you would like to relink JSTime with changes:

  • git submodule update --init --recursive
  • make jsc
  • zig build

This compiles JavaScriptCore, compiles JSTime’s .cpp bindings for JavaScriptCore (which are the object files using JavaScriptCore) and outputs a new jstime binary with your changes.

JSTime statically links these libraries:

| Library | License | | --- | --- | | boringssl | several licenses | | libarchive | several licenses | | lol-html | BSD 3-Clause | | mimalloc | MIT | | picohttp | dual-licensed under the Perl License or the MIT License | | zstd | dual-licensed under the BSD License or GPLv2 license | | simdutf | Apache 2.0 | | tinycc | LGPL v2.1 | | uSockets | Apache 2.0 | | zlib-cloudflare | zlib | | c-ares | MIT licensed | | libicu 72 | license here | | libbase64 | BSD 2-Clause | | A fork of uWebsockets | Apache 2.0 licensed | | Parts of Tigerbeetle’s IO code | Apache 2.0 licensed |

For compatibility reasons, the following packages are embedded into JSTime’s binary and injected if imported.

| Package | License | | --- | --- | | assert | MIT | | browserify-zlib | MIT | | buffer | MIT | | constants-browserify | MIT | | crypto-browserify | MIT | | domain-browser | MIT | | events | MIT | | https-browserify | MIT | | os-browserify | MIT | | path-browserify | MIT | | process | MIT | | punycode | MIT | | querystring-es3 | MIT | | stream-browserify | MIT | | stream-http | MIT | | string_decoder | MIT | | timers-browserify | MIT | | tty-browserify | MIT | | url | MIT | | util | MIT | | vm-browserify | MIT |

  • JSTime’s JS transpiler, CSS lexer, and Node.js module resolver source code is a Zig port of @evanw’s esbuild project.
  • Credit to @kipply for the name “JSTime”!