<commit_before>InEngine.NET allows commands to be [queued](queuing), [scheduled](scheduling), and run directly.

## How does it work?

InEngine.NET uses a plugin system to dynamically load .NET assemblies and execute code. 
It also has a built-in command for launching external non-.NET programs.

Get started by pulling the latest binaries from the [latest release](https://github.com/InEngine-NET/InEngine.NET/releases) on GitHub.

Then run a [command](commands):

```bash
inengine.exe -pInEngine.Core echo --text"Hello, world"
```
Or if you\'re a Linux or Mac OS X fan (like me!), use the **inengine** shell script ([Mono](http://www.mono-project.com/download/) required.):

```bash
# or if you\'re a Linux fan like me... 

inengine -pInEngine.Core echo --text"Hello, world"
```

Instead of downloading binaries and runtimes, you can pull the latest Docker image:

```bash
docker pull ethanhann/inengine:latest
```

Now run a command in a container:

```bash
docker run --rm inengine -pInEngine.Core echo --text"Hello, world"
``` 

Want to queue our example echo command to run in (possibly) another server?

Use the core plugin's **queue:publish** command:

```bash
inengine.exe -pInEngine.Core queue:publish --command-plugin=InEngine.Core.dll --command-verb=echo --args "text=Hello, world"
``` 

How do we consume that queued echo command?

Use the core plugin's **queue:consume** command of course:

```bash
inengine.exe -pInEngine.Core queue:consume
``` <commit_msg>Update docs<commit_after>InEngine.NET allows commands to be [queued](queuing), [scheduled](scheduling), and run directly.

## How does it work?

InEngine.NET uses a plugin system to dynamically load .NET assemblies and execute code. 
It also has a built-in command for launching external non-.NET programs.

Get started by pulling the latest binaries from the [latest release](https://github.com/InEngine-NET/InEngine.NET/releases) on GitHub.

Then run a [command](commands):

```bash
inengine.exe -pInEngine.Core echo --text"Hello, world"
```
Or if you\'re a Linux or Mac OS X fan (like me!), use the **inengine** shell script ([Mono](http://www.mono-project.com/download/) required.):

```bash
# or if you\'re a Linux fan like me... 

inengine -pInEngine.Core echo --text"Hello, world"
```

Instead of downloading binaries and runtimes, you can pull the latest Docker image:

```bash
docker pull ethanhann/inengine:latest
```

Now run a command in a container:

```bash
docker run --rm inengine -pInEngine.Core echo --text"Hello, world"
``` 

Want to queue our example echo command to run in (possibly) another server?

Use the core plugin's **queue:publish** command:

```bash
inengine.exe -pInEngine.Core queue:publish --command-plugin=InEngine.Core.dll --command-verb=echo --args "text=Hello, world"
``` 

How do we consume that queued echo command?

Use the core plugin's **queue:consume** command of course:

```bash
inengine.exe -pInEngine.Core queue:consume
``` 

But what if I want to run some non-.NET code?

Use the core plugin's **proc** command to execute any program you like.

Create a hello world python script called **helloworld.py**:

```python
print 'Hello, world!'
```

Now execute it with the **proc** command:

```bash
inengine -pInEngine.Core proc --command=/usr/bin/python --args=helloworld.py
```
{'fraction_non_alphanumeric': 0.12560679611650485, 'fraction_numerical': 0.0, 'mean_word_length': 4.449586776859504, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 2, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6565921', 'n_tokens_mistral': 1078, 'n_tokens_neox': 975, 'n_words': 398}