JsExe by adinpsz [web]
screenshot added by cb on 2012-05-23 12:57:11
platform :
type :
release date : may 2012
  • 30
  • 4
  • 1
popularity : 73%
  • 0.83
alltime top: #2379
  • cb cb [code]
added on the 2012-05-23 12:57:11 by cb cb

popularity helper

increase the popularity of this prod by spreading this URL:

or via: facebook twitter pinterest tumblr


JsExe is a demo-oriented JavaScript compressor. It takes as input a standalone JavaScript source file and produces an HTML source file which executes a JavaScript with the same behaviour as the input one. JsExe aims to produce the smallest HTML file, using the best combination of compression tricks, such as embedding JS code in a PNG image. In the default mode, here what it does more specifically :

- It takes an JS file as input parameter.
- If it helps, the JS file is optimized using an improved version of Google Closure Compiler (with no line break, better float formatting, etc).
- File byte order is reversed or not (depending on whether it improves final compression rate or not).
- It embeds the resulting file in a PNG image, choosing the best PNG format (RGB or gray).
- Then it uses the most efficient PNG optimizer tool (PNGOUT or another one).
- Then output PNG is stripped of CRC and IEND block.
- Finally the loader is appended to the output file. In the loader, V is the name of canvas element and C is the name of its 2D context. By reusing this variables in your JS code, you have an access to an existing canvas element and its 2D context and do not have to create new ones (it saves a few bytes).

For each step of the compression chain, you can force a choice by using the corresponding command line parameter. Please execute JsExe.exe for more details.

Some improvements still need to be made, for example multirow PNG support or customizable variable names. But feel free to give me any feedbacks : cb@adinpsz.org

Greetings to :
* Gasman, Daekin, p01 for their bright ideas !
* Wullon as usual,
* Google, Ken Silverman, Glenn Randers-Pehrson, Cosmin Truta for their tools.
added on the 2012-05-23 13:18:23 by cb cb
rulez added on the 2012-05-23 13:30:21 by LLB LLB
wish i could use it on mac!
rulez added on the 2012-05-23 13:39:16 by psenough psenough
wish I could use it online!
rulez added on the 2012-05-23 13:49:11 by p01 p01
Wish I could make a demo so I could wish I could use it online on my mac!
So much progress in so little time...!
rulez added on the 2012-05-23 14:07:16 by losso losso
wish i had a reason to use it!
rulez added on the 2012-05-23 14:08:22 by Gargaj Gargaj
no osx support?
added on the 2012-05-23 14:46:20 by jmagic jmagic
what gargaj said
rulez added on the 2012-05-23 14:49:27 by v3nom v3nom
what tomaes said.
rulez added on the 2012-05-23 14:52:59 by tomaes tomaes
what v3nom said
rulez added on the 2012-05-23 14:59:03 by wysiwtf wysiwtf
wait, what did you just say?
am I reading it right as "j-sexy" ? :D
rulez added on the 2012-05-23 16:01:19 by ferris ferris
oh yeah! :)
rulez added on the 2012-05-23 16:08:48 by -SP- -SP-
Ferris>pun intended ;)
added on the 2012-05-23 16:11:31 by wullon wullon
I read J-SEXE and that's enough for a thumb!
rulez added on the 2012-05-23 16:22:35 by rez rez
With the authors being French, I tend to read that "jSex" :p not so sexy.
added on the 2012-05-23 16:25:40 by p01 p01
rulez added on the 2012-05-23 16:26:09 by xTr1m xTr1m
COuld be a useful website.
rulez added on the 2012-05-23 16:33:03 by ponce ponce
Would it be out of the question to upload the source somewhere? When browsers and standards change the tool might need adjusting. And the Mac/whatever folks could try to port it to their preferred platform.
added on the 2012-05-24 10:57:53 by Marq Marq
rulez added on the 2012-05-24 16:00:06 by Tarmil Tarmil
A simply wonderful tool!! There's just nothing else to touch it in its class.
rulez added on the 2012-05-31 12:21:35 by Fell Fell
Wish it was written in JS!
rulez added on the 2012-05-31 14:44:09 by flngr flngr
Genius, thanks Charles !
Do you think it can be used to improve "standard" JS ?
rulez added on the 2012-05-31 14:47:49 by Diije Diije
For standard JS / usecases I think it's better to use HTTP compression
added on the 2012-05-31 14:51:44 by wullon wullon
Great job!
rulez added on the 2012-05-31 20:00:17 by LiraNuna LiraNuna
another coderJob i dont get like a 1%-grasp-of yet :/ man, i am legion, ehrrmm...i am lamer! ;)
too bad i didnt join adinpsz when i got that offer (due to having had joined trsi some minutes before -> trsi is 4life :D )
rulez added on the 2012-05-31 20:34:45 by ɧ4ɾɗվ. ɧ4ɾɗվ.
cb will make a talk about JsExe at DemoJS 2012 : http://demojs.org/schedule.html
added on the 2012-06-08 14:17:56 by wullon wullon
New version available! Main changes from v1.0.1 to v1.0.2 :
* Multirow PNG support. No limit on input file size anymore.
* Improved PNG optimization chain based on AdvanceCOMP, DeflOpt and a better use of PNGOUT/OptiPNG. PNG color format choice has been removed.
* UI slightly improved.
Once completed I’ll release the code of JsExe, hope people will do an OSX version.

Diije> This tool is demo-oriented and is unsuitable for websites. It produces files which are not compatible with IE or older browsers, do not meet web standards, and are too slow (decompression takes more time than network transmission). For common websites, you should use regular methods such as Closure Compiler and server-side compression. That’s why JsExe is a console application and I didn’t make a point of converting it to an online service.
added on the 2012-06-17 19:27:13 by cb cb
rulez added on the 2012-06-19 11:59:59 by knox knox
for the name :D
rulez added on the 2012-06-29 23:54:04 by ulrick ulrick
Crinkler.js =D
rulez added on the 2012-12-29 23:48:56 by T$ T$
New version available! It includes various improvements, but the most important ones are :
* Firefox 22 support. Currently several demos released during DemoJS 2013 does not work on FF 22.
* Automatic function name mangling. Name mangling aims to redefine native browser functions with shorter names, reducing the cost of calling this functions. For instance name mangling saved 100 bytes in Grandpa 8k-demo.
rulez added on the 2013-07-08 16:41:12 by cb cb
Wrote the first draft of a wrapper to make it usable for using Grunt as as a task, I skipped the PNG optimizer and ByteOrder option for now - because I think they're both good default and nobody(?) wants to change them anyways.


Thanks for bringing JsExe, it just amazing how small it get's the code - I tried to do it on my own last week. Using p01s release from demojs and trying to make it smaller, didn't manage to do it - and capped at 19kb above what JsExe produced. It's just nuts :D
rulez added on the 2013-07-08 23:46:55 by mog mog
I can't get the latest version work with Firefox 22.0, can anybody verify it really works?
rulez added on the 2013-07-09 16:40:48 by Bercon Bercon
Are you sure the problem is related to JsExe? Could you send me the file you're trying to pack?
added on the 2013-07-09 21:01:23 by cb cb
BTW thanks for your interesting contribution, mog! I definitely should install Grunt on my Windows and try "grunt-jsexe" (this name sounds so poetic !)
added on the 2013-07-11 15:40:40 by cb cb
Only Faildows version? :(
sucks added on the 2013-10-20 18:24:25 by Suborg Suborg
Great tool. Thumb to counteract the idiot.
rulez added on the 2013-10-20 18:36:48 by Preacher Preacher
Don't know if this is a good place for bug reports, but it seems that compressing our latest craptro source with version 1.1.1 and using --compiler=best -flag will produce a rather destructive 216b file.

Using the default compiler flag will produce correct output, as will using closure compiler separately with --compilation_level ADVANCED_OPTIMIZATIONS. This might be some kind of JavaScript incompetence on my part though.
added on the 2014-04-22 17:19:40 by Trilkk Trilkk
Also thumbing up for obvious reasons.
rulez added on the 2014-04-22 17:19:55 by Trilkk Trilkk
This is great! Thank you! :)
rulez added on the 2015-02-02 23:49:18 by rimina rimina
rulez added on the 2022-09-17 23:27:15 by med med
Wish you were here (on my Mac)
added on the 2023-12-11 19:51:08 by BSC BSC

submit changes

if this prod is a fake, some info is false or the download link is broken,

do not post about it in the comments, it will get lost.

instead, click here !

[previous edits]

add a comment