Richard Bucker

Embed all your artifacts

Posted at — Dec 8, 2013

Taking yet another lesson from fossil there is merit in embedding all of your artifacts in your executable.

First of all in this scenario where one might cash static artifacts those artifacts still need to exist on disk and be loaded into memory for usage a short time later. This is clearly inefficient.

Secondly the code used to import these artifacts has a latency all its own that too is an efficient and is basically a one time use feature when the application is started.

Thirdly as the artifacts exist as static files that are processed during initialization of the application those artifacts can be changed or become corrupt as is. If the files become altered prior to the next restart the entire presentation to the end-user or use cases could be corrupted.

Having a single artifact representing the executable is a much more robust mechanism for reliable distribution and execution. One very strong improvement might be if the single executable could be signed and verified by the kernel prior to launching.