<commit_before>Trombone
========

### Introduction

Trombone is a [REST](http://en.wikipedia.org/wiki/Representational_state_transfer)ful, [JSON](http://json.org/)-driven [data access server](http://en.wikipedia.org/wiki/Data_access_layer) for [PostgreSQL](http://www.postgresql.org). Its purpose is to map HTTP requests to preconfigured SQL templates. These templates are instantiated and executed against a database, with results returned in JSON, using   standard HTTP response codes and error conventions. 

You may find this software useful if,

1. your application infrastructure relies on relational SQL schemas; and
2. you need to expose some of this data using a web service (using JSON as data exchange format).

A Trombone configuration file consists of a collection of route patterns.

    GET resource/:id  ->  select * from some_table where id = {{:id}}

The format of a single route is described by the following (high-level) grammar. 

    <route> ::= <method> <uri> <symbol> <action>

During dispatch, the server will look through the list of routes for a possible match, based on the uri components and the HTTP method used in the request. 

The arrow symbol specifies the type of route and the response object's expected format. See below for an explanation of these symbols. The particular arrow used here; `->`, denotes an SQL query with a singleton result.

### Hello, world!

todo
<commit_msg>readme changes<commit_after>Trombone
========

### Introduction

Trombone is a [REST](http://en.wikipedia.org/wiki/Representational_state_transfer)ful, [JSON](http://json.org/)-driven [data access server](http://en.wikipedia.org/wiki/Data_access_layer) for [PostgreSQL](http://www.postgresql.org). Its purpose is to map HTTP requests to preconfigured SQL templates. These templates are instantiated and executed against a database, with results returned in JSON, using   standard HTTP response codes and error conventions. 

You may find this software useful if,

1. your application infrastructure relies on relational SQL schemas; and
2. you need to expose some of this data through a web service (using JSON as data exchange format).

A Trombone configuration file consists of a collection of route patterns.

    GET resource/:id  ->  select * from some_table where id = {{:id}}

The format of a single route is described by the following (high-level) grammar. 

    <route> ::= <method> <uri> <symbol> <action>

During dispatch, the server will look through the list of routes for a possible match, based on the uri components and the HTTP method used in the request. 

The arrow symbol specifies the type of route and the response object's expected format. See below for an explanation of these symbols. The particular arrow used here; `->`, denotes an SQL query with a singleton result.

### Hello, world!

todo

{'fraction_non_alphanumeric': 0.08112874779541446, 'fraction_numerical': 0.0014109347442680777, 'mean_word_length': 4.517509727626459, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 17, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, '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': '580498', 'n_tokens_mistral': 735, 'n_tokens_neox': 704, 'n_words': 369}