<commit_before># Monocoque sample project

This project demonstrates a simple Gui application using the Monocoque framework. The main features are the follwing:

 - output is a single statically linked executable that can be copied and run anywhere, even on Linux
 - all resources (images etc) are embedded inside the app
 - all dependencies come as source from [wrapdb](http://wrapdb.mesonbuild.com) automatically, no need to install dependencies on any platform

## Why is is called Monocoque?

A monocoque is a construct where a small outer shell contains the innards. As an example
the cockpit of a Formula one car is a monocoque. For more info see the [Wikipedia article](https://en.wikipedia.org/wiki/Monocoque).

In a similar way the framework provides an encapsulation for your app and protects it against changing systems.

## Is it a heavy duty framework like the ones we know from Java?

Not at all. Basically all monocoque is is a project with all its dependencies statically linked in. This sample uses the [Meson build system](http://mesonbuild.com) and the corresponding Wrap dependency system which has been designed to support this use case natively. The demo app uses SDL2 for the gui because it is a high quality and small portable library. You can use any gui toolkit you want as long as it can be linked statically.

## Why would I ever want to distribute an app like this?

Every now and then you need to ship a single standalone app to people. A single standalone exe is easy to send over email. It is also trivial to keep multiple different versions on the same machine with the extra knowledge that they can not accidentally read each others' data.

## Why don't the resource images have alpha channels?

Because of [this bug](https://bugzilla.libsdl.org/show_bug.cgi?id=2515).

## Contact

`jpakkane at gmail`<commit_msg>Improved readme.<commit_after># Monocoque sample project

This project demonstrates a simple Gui application using the Monocoque framework. The main features are the following:

 - output is a single statically linked executable that can be copied and run anywhere, even on Linux
 - all resources (images etc) are embedded inside the app
 - all dependencies come as source from [wrapdb](http://wrapdb.mesonbuild.com) automatically, no need to install dependencies on any platform

## Lots of frameworks do the same, what sets this one apart?

The entire build definition of the project is 33 lines long. This covers all compilation steps on Linux, OSX and Windows, as well as all supporting pieces such as downloading and using dependencies, converting resource files into source and so on.

This simplicity is made possible by the use of the [Meson build system](http://mesonbuild.com) and the corresponding Wrap dependency system which has been designed to support this use case natively.

## Is it a heavy duty framework like the ones we know from Java?

Not at all. Basically all monocoque is is a project with all its dependencies statically linked in. The demo app uses SDL2 for the gui because it is a high quality and small portable library. You can use any gui toolkit you want as long as it can be linked statically.

## Why would I ever want to distribute an app like this?

Every now and then you need to ship a single standalone app to people. A single standalone exe is easy to send over email. It is also trivial to keep multiple different versions on the same machine while knowing that they can not accidentally read each others' data files.

## Why don't the resource images have alpha channels?

Because of [this bug](https://bugzilla.libsdl.org/show_bug.cgi?id=2515).

## Why is is called Monocoque?

A monocoque is a construct where a small outer shell contains the innards. As an example
the cockpit of a Formula one car is a monocoque. For more info see the [Wikipedia article](https://en.wikipedia.org/wiki/Monocoque).

In a similar way the framework provides an encapsulation for your app and protects it against changing systems.

## Contact

`<EMAIL> at gmail`
{'fraction_non_alphanumeric': 0.0451165096678235, 'fraction_numerical': 0.002974714923153198, 'mean_word_length': 4.38, 'pattern_counts': {'":': 0, '<': 4, '<?xml version=': 0, '>': 4, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1000993', 'n_tokens_mistral': 1014, 'n_tokens_neox': 968, 'n_words': 623}