<commit_before>SQRL Server Library
=======================

ALPHA STATE! CODE MAY NOT BUILD, LET ALONE WORK AS EXPECTED!

This module supports Python-based web servers in processing SQRL_ requests. It only does the core protocol work. It leaves data representation, storage, and other platform-specific actions to the server.

.. _SQRL: https://www.grc.com/sqrl/sqrl.htm

Currently Implemented
---------------------

* ``url_generate``: Generates the URL that directs the SQRL client where to authenticate.
* ``Nut`` class: Used for generating, inspecting, and validating nuts.
* ``Request`` class: Used for receiving and processing client requests. Currently supports the following commands:
	* ``query``
* ``Response`` class: Used by the ``Request`` class to build the response you will need to return to the client.

Divergences
-----------

* Status code 0x100 is not currently used. If IDs ever get rolled into the nut, then this could change.
* There is confusion in the spec about what exactly the server should be doing about the ``opt`` parameter. Right now this library ignores it until it's time to actually execute a non-query command. It does not ensure that the field remains constant over some set of requests.
<commit_msg>Update README.rst<commit_after>SQRL Server Library
=======================

ALPHA STATE! CODE MAY NOT BUILD, LET ALONE WORK AS EXPECTED!

This module supports Python-based web servers in processing SQRL_ requests. It only does the core protocol work. It leaves data representation, storage, and other platform-specific actions to the server.

.. _SQRL: https://www.grc.com/sqrl/sqrl.htm

Currently Implemented
---------------------

- ``url_generate``: Generates the URL that directs the SQRL client where to authenticate.

- ``Nut`` class: Used for generating, inspecting, and validating nuts.

- ``Request`` class: Used for receiving and processing client requests. Currently supports the following commands:
  
  - ``query``
	
- ``Response`` class: Used by the ``Request`` class to build the response you will need to return to the client.

Divergences
-----------

- Status code 0x100 is not currently used. If IDs ever get rolled into the nut, then this could change.
- There is confusion in the spec about what exactly the server should be doing about the ``opt`` parameter. Right now this library ignores it until it's time to actually execute a non-query command. It does not ensure that the field remains constant over some set of requests.

{'fraction_non_alphanumeric': 0.10731511254019292, 'fraction_numerical': 0.003215434083601286, 'mean_word_length': 3.91897233201581, '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': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6660670', 'n_tokens_mistral': 650, 'n_tokens_neox': 607, 'n_words': 339}