<commit_before># Haywire.NET

Haywire bindings and request server for ASP.NET Core

Currently this only works on Linux (specifically the distros that .NET Core supports) and the Windows Subsystem for Linux

###Dependencies (Same as Haywire plus .NET Core)
```
apt-get install git gcc make cmake automake autoconf libssl-dev libtool
```
Follow the instructions at http://dot.net for installing .NET Core for your linux distro

##Setup
Check out this git repo with the haywire submodule. This submodule is needed to produce the shared libraries need for pinvoke in .NET.
```
git clone --recursive https://github.com/clarkis117/Haywire.NET.git
```

##Compiling on Linux - run make.sh in the main directory of Haywire.NET
```
./make.sh
```

##Hello World – Default URL: http://127.0.0.1:8800
```
cd ./HelloWorld
dotnet run
```

###Benchmarking 
Same instructions as Haywire, just be aware that the defaults for the HelloWorld program are different<commit_msg>updated readme to reflect recent changes<commit_after># Haywire.NET

Haywire bindings and request server for ASP.NET Core

Currently this only works on Linux (specifically the distros that .NET Core supports) and the Windows Subsystem for Linux

###Dependencies (Same as Haywire plus .NET Core)
```
apt-get install git gcc make cmake automake autoconf libssl-dev libtool
```
Follow the instructions at http://dot.net for installing .NET Core for your linux distro. The current version of the of the .NET Core SDK used by the project is:
```
  dotnet-dev-1.0.0-preview2.1-003177
```


##Setup
Check out this git repo with the haywire submodule. This submodule is needed to produce the shared libraries need for pinvoke in .NET.
```
git clone --recursive https://github.com/clarkis117/Haywire.NET.git
```

##Compiling on Linux - run make.sh in the main directory of Haywire.NET
```
./make.sh
```

##Hello World – Default URL: http://localhost:8000
```
cd ./src/HelloWorld
dotnet run --configuration release
```

###Benchmarking 
Same instructions as Haywire, just be aware that the the Hello World example pulls it's configuration from a json file, config.json. In addition, please make sure you're running and building the Hello World program in release mode otherwise perf results may vary.

#### config.json defaults
```
{
  "HttpListenAddress": "localhost",
  "HttpListenPort": 8000,
  "ThreadCount": 0,
  "Balancer": "ipc",
  "Parser": "http_parser",
  "TcpNoDelay": false,
  "ListenBackLog": 0,
  "MaxRequestSize": 1048576
}
```
{'fraction_non_alphanumeric': 0.09851226377161239, 'fraction_numerical': 0.01769199839163651, 'mean_word_length': 4.3852813852813854, 'pattern_counts': {'":': 8, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 1, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '273901', 'n_tokens_mistral': 773, 'n_tokens_neox': 700, 'n_words': 318}