{"id":16131473,"url":"https://github.com/thislight/hussar","last_synced_at":"2025-04-06T14:32:31.108Z","repository":{"id":171529367,"uuid":"294735004","full_name":"thislight/hussar","owner":"thislight","description":"Toolkit, to go. HTTP Server Toolkit for Lua. Still in development stage.","archived":false,"fork":false,"pushed_at":"2021-01-07T08:43:16.000Z","size":245,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-12T20:37:55.946Z","etag":null,"topics":["lua","web"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thislight.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-11T15:39:31.000Z","updated_at":"2020-11-12T13:00:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"43bed214-1a96-45b5-b279-32578f317e4e","html_url":"https://github.com/thislight/hussar","commit_stats":null,"previous_names":["thislight/hussar"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thislight%2Fhussar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thislight%2Fhussar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thislight%2Fhussar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thislight%2Fhussar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thislight","download_url":"https://codeload.github.com/thislight/hussar/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247495879,"owners_count":20948120,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["lua","web"],"created_at":"2024-10-09T22:25:20.664Z","updated_at":"2025-04-06T14:32:31.103Z","avatar_url":"https://github.com/thislight.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hussar\n[![pipeline status](https://gitlab.com/thislight/hussar/badges/master/pipeline.svg)](https://gitlab.com/thislight/hussar/-/pipelines) \n[![coverage report](https://gitlab.com/thislight/hussar/badges/master/coverage.svg)](https://gitlab.com/thislight/hussar/-/pipelines)  \nToolkit, to go. Hussar is a powerful HTTP server toolkit.\n\n## Still in Preview Stage\nThis library is still in preview stage, that means the library may have huge changes in future.\n\n## Installation\n`luarocks install hussar`\n\n## Package Structure\n- `hussar` is core library to help managing connections.\n- `hussar.httputil` contains set of helpers to deal with http connection.\n- `hussar.source.fake` keeps a \"source\" (of connections), but it can set up new connection, which is not created by real clients, by programming.\n- `hussar.wrapline` is a small library helping to wrap a function by a set of functions (\"wrappers\")\n- `hussar.wrap_thread` is a function to help you wrap the handler for hussar to run in a new thread for every called\n- `hussar.terr` is a small library to create errors are friendly to both code and human\n- `hussar.request_router` can route the request to different handlers by checkers, which checks request and private frame and tell router if one handler to be called\n- `hussar.request_router.checkers` is a small library keeps functions to create new checkers or to use provided checkers. Provided checkers: HOST, PATH, CUSTOM, HOST_AND_PATH.\n\n## Documents\n\n- API References (TBD)\n- Contribution Guide (TBD)\n- Test Containers Description (TBD)\n- How It Works (TBD)\n- Basic Usages (TBD)\n\n## Examples\nSee `example/` directory.\n\n## Running Tests\nUse [busted](http://olivinelabs.com/busted/): `busted`.\n\nThere are some predefined docker images for running tests, they are configured to contains the basic concepts to run the tests with `busted`. You can build the images from `test_containers`, or just use private registry on gitlab.com:\n\n- `registry.gitlab.com/thislight/hussar:alpine3d12_lua54`\n- `registry.gitlab.com/thislight/hussar:debian11_lua53`\n- `registry.gitlab.com/thislight/hussar:alpine3d12_lua54_git` (`git` included)\n- `registry.gitlab.com/thislight/hussar:debian11_lua53` (`git` included)\n\nYou need to specify `bash` to start bash, or you will get some version infomation, for example: `podman -it registry.gitlab.com/thislight/hussar:debian11_lua53 bash`. These images have included `busted`.\n\nThey are just environments, you still need cloning files and running `luarocks make` to install all required packages before you run anything.\n\n## License\nGNU General Public License, version 3 or later.  \nTips: you can include this library for online service without open source. this is not a legal advice.\n\nThe content under subdirectory 'teal-types' is using Apache License, version 2.0 (https://www.apache.org/licenses/LICENSE-2.0)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthislight%2Fhussar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthislight%2Fhussar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthislight%2Fhussar/lists"}