<commit_before>LinkRest
=========
LinkRest is a server-side Java REST framework for easy access of backend data stores. Its goal is to simplify backend interaction of client applications, such as JavaScript apps or a native mobile apps. It is closely integrated with [JAX-RS 2.0](http://en.wikipedia.org/wiki/Java_API_for_RESTful_Web_Services) REST containers and minimizes the amount of the server-side code needed to expose your data.

LinkRest was originally written with Sencha/ExtJS clients in mind, but it is not specific to a any single client technology. It can be used from iOS and Android applications, jQuery, etc.

LinkRest is written on top of [Apache Cayenne ORM](http://cayenne.apache.org/) and supports any relational data store. Alternative data stores can be provided with relative ease for NoSQL databases, flat files, etc.

LinkRest is open source and is distributed under the terms of [BSD license](https://github.com/nhl/link-rest/blob/master/LICENSE.txt).

LinkRest Protocol
-------------
LinkRest defines a simple protocol for writing REST endpoints. The protocol is based on HTTP and JSON. Client applications use it to read or modify data entities. The main feature of LinkRest Protocol is the ability of the client to customize fine details of the response JSON. The clients can explicitly request inclusion in response of any given set of attributes (including related entities and their attributes), specify filtering criteria, sort ordering, pagination, etc. This allows to implement general purpose REST API with very little to no effort.

Getting Started
-----------
TODO
<commit_msg>more text<commit_after>LinkRest
=========
LinkRest is a server-side Java REST framework for easy access of backend data stores. Its goal is to simplify backend interaction of client applications, such as JavaScript apps or a native mobile apps. It is closely integrated with [JAX-RS 2.0](http://en.wikipedia.org/wiki/Java_API_for_RESTful_Web_Services) REST containers and minimizes the amount of the server-side code needed to expose your data.

LinkRest was originally written with Sencha/ExtJS clients in mind, but it is not specific to a any single client technology. It can be used from iOS and Android applications, jQuery, etc.

LinkRest is written on top of [Apache Cayenne ORM](http://cayenne.apache.org/) and supports any relational data store. Alternative data stores can be provided with relative ease for NoSQL databases, flat files, etc.

LinkRest is open source and is distributed under the terms of [BSD license](https://github.com/nhl/link-rest/blob/master/LICENSE.txt).

LinkRest Protocol
-------------
LinkRest defines a simple communication protocol between client and server based on HTTP and JSON. Client applications use it to read or modify data entities. The main feature of LinkRest Protocol is the ability of the client to customize fine details of the response JSON. The clients can explicitly request inclusion in response of any given set of attributes (including related entities and their attributes), specify filtering criteria, sort ordering, pagination, etc. This allows to implement general purpose REST API with very little to no effort.

Getting Started
-----------
TODO

{'fraction_non_alphanumeric': 0.06358560794044665, 'fraction_numerical': 0.0012406947890818859, 'mean_word_length': 4.475382003395586, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, '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': '277198', 'n_tokens_mistral': 759, 'n_tokens_neox': 724, 'n_words': 445}