<commit_before>go-thrust
=========

Official GoLang Thrust Client for Thrust (https://github.com/breach/thrust) to be used in Breach.cc(http://breach.cc) via Official Go Implementation @ (http://github.com/miketheprogrammer/breach-go).

Running DEMO binary on OSX 10.9 or Linux (This is just for the demo, Thrust as it stands now is really a Library to be used in other applications.)
==================
Go Thrust will automatically install Thrust Core dependencies at runtime.


Start Go Thrust using binaries
```bash
Download the release for your distribution from the releases page.
unzip the contents.
run ./Thrust or the absolute path to the executable
```
Start Go Thrust using source and GoLang runtime
```bash
./install-go-deps.sh #installs current dependencies
make build.release
cd release/go-thrust/
./Thrust
```

Command Line Switches
========================
```bash
#LOGGING
#Inherits Switches from http://godoc.org/github.com/alexcesaro/log/stdlog
#Added below for ease, but for up to date info visit the page.
-log=loglevel
    #Log events at or above this level are logged.
-stderr=bool
    #Logs are written to standard error (stderr) instead of standard
    #output.
-flushlog=none
    #Until this level is reached nothing is output and logs are stored
    #in the memory. Once a log event is at or above this level, it
    #outputs all logs in memory as well as the future log events. This
    #feature should not be used with long-running processes.
```

DOCUMENTATION
================
* [Index](https://github.com/miketheprogrammer/go-thrust/tree/master/doc)

Roadmap to v1.0 :
================
Please note Complete Support will never be toggled until Thrust core is stable.

- [X] Queue Requests prior to Object being created to matain a synchronous looking API without the need for alot of state checks
- [ ] Remove overuse of pointers in structs where modification will not take place
- [ ] Add Window Support
  - [X] Basic Support
  - [X] Refactor Connection usage
  - [ ] Complete Support 

- [ ] Add Menu Support
  - [X] Basic Support
  - [X] Refactor Connection usage
  - [ ] Complete Support

- [ ] Add Session Support
  - [X] Basic Support
  - [ ] Complete Support

- [X] Implement Package Connection

- [x] Seperate out in to packages other than main
  - [X] Package Window
  - [X] Package Menu
  - [X] Package Commands
  - [X] Package Spawn

- [ ] Remove func Main as this is a Library
  - [ ] Should use Tests instead

- [X] Refactor how Dispatching occurs
  - [X] We should not have to manually dispatch, there should be a registration method 

- [ ] Refactor menu.SetChecked to accept a nillable menu item pointer, so we dont have to waste resources finding the item in the Tree

- [X] Refactor CallWhen* methods, Due to the nature of using GoRoutines, there is the chance that calls will execute out of the original order they were intended.

- [X] Create a script to autodownload binaries

- [X] Refactor Logging

- [ ] SubMenus need order preservation

- [X] vendor folders need versioning

- [X] Need to fix Pathing for autoinstall and autorun. Relative paths will not work for most use cases.

This thrust client exposes enough Methods to be fairly forwards compatible even without adding new helper methods. The beauty of working with a stable JSON RPC Protocol is that most methods are just helpers around build that data structure.

Helper methods receive the UpperCamelCase version of their relative names in Thrust.

i.e. insert_item_at == InsertItemAt

<commit_msg>Readme added section on bundling a release of binaries that include Go-Thrust<commit_after>go-thrust
=========

Official GoLang Thrust Client for Thrust (https://github.com/breach/thrust) to be used in Breach.cc(http://breach.cc) via Official Go Implementation @ (http://github.com/miketheprogrammer/breach-go).

Running DEMO binary on OSX 10.9 or Linux (This is just for the demo, Thrust as it stands now is really a Library to be used in other applications.)
==================
Go Thrust will automatically install Thrust Core dependencies at runtime.


Start Go Thrust using binaries
```bash
Download the release for your distribution from the releases page.
unzip the contents.
run ./Thrust or the absolute path to the executable
```
Start Go Thrust using source and GoLang runtime
```bash
./install-go-deps.sh #installs current dependencies
make build.release
cd release/go-thrust/
./Thrust
```

Command Line Switches
========================
```bash
#LOGGING
#Inherits Switches from http://godoc.org/github.com/alexcesaro/log/stdlog
#Added below for ease, but for up to date info visit the page.
-log=loglevel
    #Log events at or above this level are logged.
-stderr=bool
    #Logs are written to standard error (stderr) instead of standard
    #output.
-flushlog=none
    #Until this level is reached nothing is output and logs are stored
    #in the memory. Once a log event is at or above this level, it
    #outputs all logs in memory as well as the future log events. This
    #feature should not be used with long-running processes.
```

DOCUMENTATION
================
* [Index](https://github.com/miketheprogrammer/go-thrust/tree/master/doc)

Roadmap to v1.0 :
================
Please note Complete Support will never be toggled until Thrust core is stable.

- [X] Queue Requests prior to Object being created to matain a synchronous looking API without the need for alot of state checks
- [ ] Remove overuse of pointers in structs where modification will not take place
- [ ] Add Window Support
  - [X] Basic Support
  - [X] Refactor Connection usage
  - [ ] Complete Support 

- [ ] Add Menu Support
  - [X] Basic Support
  - [X] Refactor Connection usage
  - [ ] Complete Support

- [ ] Add Session Support
  - [X] Basic Support
  - [ ] Complete Support

- [X] Implement Package Connection

- [x] Seperate out in to packages other than main
  - [X] Package Window
  - [X] Package Menu
  - [X] Package Commands
  - [X] Package Spawn

- [ ] Remove func Main as this is a Library
  - [ ] Should use Tests instead

- [X] Refactor how Dispatching occurs
  - [X] We should not have to manually dispatch, there should be a registration method 

- [ ] Refactor menu.SetChecked to accept a nillable menu item pointer, so we dont have to waste resources finding the item in the Tree

- [X] Refactor CallWhen* methods, Due to the nature of using GoRoutines, there is the chance that calls will execute out of the original order they were intended.

- [X] Create a script to autodownload binaries

- [X] Refactor Logging

- [ ] SubMenus need order preservation

- [X] vendor folders need versioning

- [X] Need to fix Pathing for autoinstall and autorun. Relative paths will not work for most use cases.

This thrust client exposes enough Methods to be fairly forwards compatible even without adding new helper methods. The beauty of working with a stable JSON RPC Protocol is that most methods are just helpers around build that data structure.

Helper methods receive the UpperCamelCase version of their relative names in Thrust.

i.e. insert_item_at == InsertItemAt


Using Go-Thrust as a Library and bundling your final release
==========================
To use go-thrust as a library, simple use the code in the same way you would use any GoLang library.

When prepping your releases, please try to stick to the contract of our release folder, view MakeFile tag build.release for an example.

However if you want to make your own folder structure, feel free to modify the spawn package and relevant tools files to suit your needs.

As long as spawn, can successfully install, find, and run the Thrust Core binaries, then you are golden.


{'fraction_non_alphanumeric': 0.0871948831745203, 'fraction_numerical': 0.0013053126223730584, 'mean_word_length': 3.877148313176321, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, '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': '580483', 'n_tokens_mistral': 2119, 'n_tokens_neox': 2040, 'n_words': 1056}