Visit Gigasoft's Web Site
ProEssentials v11 Help

Chapter 2: ProEssentialsJS Deployment

 

Deployment is static files. There is no server component, no service to install, no runtime for the end user to acquire, and no round trip to draw a chart. Everything below is about what the browser fetches and how the server hands it over.

 

One Server Setting Is Mandatory

Serve .wasm with the content type application/wasm. The engine is instantiated by streaming, and streaming instantiation refuses any other content type. If the server sends application/octet-stream the chart never appears and the browser console names the content type. This is the single most common deployment mistake and it is a one-line server change.

 

On IIS, add the mapping in web.config:

<system.webServer>
  <staticContent>
    <remove fileExtension=".wasm" />
    <mimeMap fileExtension=".wasm" mimeType="application/wasm" />
  </staticContent>
</system.webServer>

 

Most other servers and hosts already map it. Check rather than assume: request the file and read the response header.

 

What The Browser Fetches

Exact uncompressed sizes for the shipping build, as a customer receives it. Only the chart objects you actually use need their property surface deployed.

 

File

Bytes

Required

proessentials.iife.js249,168Always. The engine and the whole host library in one script -- drawing, input, scrollbars, menus, dialogs, tooltips, events, and the 3D and WebGPU layers. This is the first of the two script tags.
proessentials.wasm2,925,264Always. The engine itself. Fetched by the script above; your page never names it.
pe-api-*.js57,592 to 71,572 eachOne per chart object you use. Imported by your own module, not by a script tag.
pe-core.js9,372Always. The WebAssembly boundary.
bmps/326,624Only if you use the built-in bitmap resources. 11 files, located by the library itself.
strings/69,677 totalOnly the locales you ship. 20 files; English alone is one of them.
*.d.ts-Never. Editor and build time only. Do not deploy them.

 

Two script tags reach the browser, not a file list. Everything above the facades is inside the one bundle, so there is no ordering to get right and nothing to forget. See Installation.

 

Compression

Enable gzip or brotli on the engine. The WebAssembly binary compresses well: 2,925,264 bytes becomes 932,373 gzipped, a little under a third of the original. Brotli does better. Many servers exclude unknown extensions from compression by default, so add .wasm to the list explicitly rather than assuming it is covered.

 

Caching

The engine is the same bytes for every user and changes only when you upgrade ProEssentials. Serve it with a long max-age and change the URL when the version changes. Fetched once, it is in the browser cache for every later page.

 

What Is Not Required

No license key No activation, no domain locking, no phone home. Deployment is identical for an evaluation and a purchased license. See ProEssentialsJS Licensing.
No server component Nothing runs on your server. The files can be served from a CDN or a storage bucket.
No data leaves the browser Rendering is client side. Chart data is never sent anywhere to be drawn, which is the reason ProEssentialsJS suits regulated and air-gapped deployments.
No runtime dependency No framework is required and none is bundled. It works inside React, Angular, Vue and Svelte, and equally in a plain page.

 

Checking A Deployment

Load the page and read the network panel. Three things tell you it is right: proessentials.wasm returns 200 with content type application/wasm, the transferred size is well below the file size, and the second load of the page fetches the engine from cache.

 

See also ProEssentialsJS Installation and ProEssentialsJS Overview.