Skip to main content

A Radix Tree based router for HTTP and other routing needs with support for middlewares and endpoints with a Cython boost

Project description

A generic string router based on a Radix Tree structure, (partially) Cython optimized for speed.

Documentation

https://xrtr.readthedocs.io/en/latest/

Inspiration

xrtr is highly inspired in Router, by shiyanhui.

License

xrtr is a free software distributed under the MIT license, the same license as Router’s license.

To Do

  • There is a LOT of room for improvement (specially when migrating the code to C and Cython and the fact this is my first project with Cython);

  • Fix test coverage (and why is it not covering method declarations, as an example);

  • There is a lot of fixes to be done regarding Cython, distribution, naming conventions and so on;

  • Add Windows builds using AppVeyor;

Changelog

v0.2.1 on 2018-10-09

  • Fixed bug where the no_conflict flag where not being propagated to the add_method if a “non-conflicting method” was the first node being created in that tree.

v0.2.0 on 2018-10-03

  • Add method_for function.

v0.1.4 on 2018-10-03

  • Add sentinel object.

v0.1.3 on 2018-09-21

  • Add testing for repeated variables.

v0.1.2 on 2018-09-14

  • Minor tweaks and improvements (search optimizations).

v0.1.1 on 2018-09-11

  • Minor tweaks and improvements.

v0.1.0 on 2018-08-22

  • First release on PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xrtr-0.2.1.tar.gz (27.9 kB view details)

Uploaded Source

Built Distributions

xrtr-0.2.1-cp37-cp37m-manylinux1_x86_64.whl (213.8 kB view details)

Uploaded CPython 3.7m

xrtr-0.2.1-cp37-cp37m-manylinux1_i686.whl (196.4 kB view details)

Uploaded CPython 3.7m

xrtr-0.2.1-cp36-cp36m-manylinux1_x86_64.whl (214.0 kB view details)

Uploaded CPython 3.6m

xrtr-0.2.1-cp36-cp36m-manylinux1_i686.whl (196.1 kB view details)

Uploaded CPython 3.6m

xrtr-0.2.1-cp35-cp35m-manylinux1_x86_64.whl (213.7 kB view details)

Uploaded CPython 3.5m

xrtr-0.2.1-cp35-cp35m-manylinux1_i686.whl (195.0 kB view details)

Uploaded CPython 3.5m

File details

Details for the file xrtr-0.2.1.tar.gz.

File metadata

  • Download URL: xrtr-0.2.1.tar.gz
  • Upload date:
  • Size: 27.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.7.0

File hashes

Hashes for xrtr-0.2.1.tar.gz
Algorithm Hash digest
SHA256 24fcc94f7a13e6f853fa7ebc0d305806afbfdff6a924b185525f28b311d05eaa
MD5 551c36a1f85728becd7edfaec02b85d5
BLAKE2b-256 1af839475e0eadbdf9525bfbac825bc37525efadf25f3c35f8e958c68534fa86

See more details on using hashes here.

File details

Details for the file xrtr-0.2.1-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

  • Download URL: xrtr-0.2.1-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 213.8 kB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.7.0

File hashes

Hashes for xrtr-0.2.1-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 672d961f8e8127033d69421a873e566a84ba95bd55cf498fa952409c0f7867cf
MD5 752af16fe53b692873f761daed7f0c44
BLAKE2b-256 cf2c5d42a471d7b01c7c77377625d4562b546841aee0691acf08020c43de6e2d

See more details on using hashes here.

File details

Details for the file xrtr-0.2.1-cp37-cp37m-manylinux1_i686.whl.

File metadata

  • Download URL: xrtr-0.2.1-cp37-cp37m-manylinux1_i686.whl
  • Upload date:
  • Size: 196.4 kB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.7.0

File hashes

Hashes for xrtr-0.2.1-cp37-cp37m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 bfd67922a804132272709ef5ef91289ab782d5a20443fca720b994e832ce8515
MD5 3a8aed1ded3dbd74f31e0da4e3135cd3
BLAKE2b-256 674b5b3805a0371b64be508188d3497ae8d4005e29a0808ad1e063d9929472bb

See more details on using hashes here.

File details

Details for the file xrtr-0.2.1-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

  • Download URL: xrtr-0.2.1-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 214.0 kB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.7.0

File hashes

Hashes for xrtr-0.2.1-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 b2ff179e53db210114f0ae73b8c16d31db353e9866bb1a7f81321a82e6e93876
MD5 46e73abcd25abfc260775830577860d4
BLAKE2b-256 c657391677b2d552d5a7473184786ab7df0cf470dd74dc24a425c2632b74d137

See more details on using hashes here.

File details

Details for the file xrtr-0.2.1-cp36-cp36m-manylinux1_i686.whl.

File metadata

  • Download URL: xrtr-0.2.1-cp36-cp36m-manylinux1_i686.whl
  • Upload date:
  • Size: 196.1 kB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.7.0

File hashes

Hashes for xrtr-0.2.1-cp36-cp36m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 5cb6707a988163373ea54bfabcdf249cb1acc205ba1bcfc426d41d20f6d64dd3
MD5 3793c8a3cbd370beeaeb56c0c40e0e02
BLAKE2b-256 725a8054cb4128c303a8970c1993028302997e1a62347d41b28d03b878fb0b55

See more details on using hashes here.

File details

Details for the file xrtr-0.2.1-cp35-cp35m-manylinux1_x86_64.whl.

File metadata

  • Download URL: xrtr-0.2.1-cp35-cp35m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 213.7 kB
  • Tags: CPython 3.5m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.7.0

File hashes

Hashes for xrtr-0.2.1-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 444ac04ade1e01b96ddbb63b0dc50b798290435c4340c2cfdb05cb1f1c3d14c9
MD5 7eec1716542e939d0160b7ad44efb4a6
BLAKE2b-256 a240f3c59ee62cc460593fa870b3f13f7b5184cc1129e5430cca7158d58d9afe

See more details on using hashes here.

File details

Details for the file xrtr-0.2.1-cp35-cp35m-manylinux1_i686.whl.

File metadata

  • Download URL: xrtr-0.2.1-cp35-cp35m-manylinux1_i686.whl
  • Upload date:
  • Size: 195.0 kB
  • Tags: CPython 3.5m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.7.0

File hashes

Hashes for xrtr-0.2.1-cp35-cp35m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 8bc151f4d873a95ec7254d7cb81143d403ce3b4d333ce48c1c7287bccd8d9163
MD5 6c1531d4fbe534c6f47f6b15bb8661e8
BLAKE2b-256 832f0ea5de34104583247af79fc15f543c746904ad341653ed2d4eb6c78f60c4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page