{"id":22313259,"url":"https://github.com/http-apis/hydrus","last_synced_at":"2025-04-04T18:03:33.152Z","repository":{"id":14506114,"uuid":"76342143","full_name":"HTTP-APIs/hydrus","owner":"HTTP-APIs","description":"REST server - Flask Hydra-powered for Semantic Web","archived":false,"fork":false,"pushed_at":"2023-02-16T05:38:34.000Z","size":1707,"stargazers_count":195,"open_issues_count":20,"forks_count":130,"subscribers_count":22,"default_branch":"develop","last_synced_at":"2024-10-29T15:59:22.359Z","etag":null,"topics":["flask","python","rest","rest-api","restful-api"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/hydrus/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HTTP-APIs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2016-12-13T09:11:38.000Z","updated_at":"2024-09-25T03:36:23.000Z","dependencies_parsed_at":"2024-04-12T09:03:12.349Z","dependency_job_id":null,"html_url":"https://github.com/HTTP-APIs/hydrus","commit_stats":{"total_commits":671,"total_committers":49,"mean_commits":"13.693877551020408","dds":0.7466467958271237,"last_synced_commit":"6212817e671570283beeb85b1f90112628dd5aa1"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HTTP-APIs%2Fhydrus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HTTP-APIs%2Fhydrus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HTTP-APIs%2Fhydrus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HTTP-APIs%2Fhydrus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HTTP-APIs","download_url":"https://codeload.github.com/HTTP-APIs/hydrus/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247226211,"owners_count":20904465,"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":["flask","python","rest","rest-api","restful-api"],"created_at":"2024-12-03T22:06:44.453Z","updated_at":"2025-04-04T18:03:33.129Z","avatar_url":"https://github.com/HTTP-APIs.png","language":"Python","readme":"hydrus [![Build Status](https://travis-ci.com/HTTP-APIs/hydrus.svg?branch=develop)](https://travis-ci.com/HTTP-APIs/hydrus)\n===================\nhydrus is a set of **Python** based tools for easier and efficient creation of Hypermedia driven REST-APIs. hydrus utilises the power of [Linked Data](https://en.wikipedia.org/wiki/Linked_data) to create a powerful REST APIs to serve data.\nhydrus uses the [Hydra(W3C)](http://www.hydra-cg.com/) standard for creation and documentation of it's APIs.\n\nStart-up the demo\n-----------------\n* with *Docker* and *docker-compose* installed, run `docker-compose up --build`\n* open the browser at `http://localhost:8080/api/vocab`\n\nYou should be displaying the example API as served by the server.\n\nAdd your own Hydra documentation file\n-------------------------------------\nTo serve your own Hydra-RDF documentation file:\n* create a `doc.py` file as the ones in `examples/` directory containing your own *ApiDoc*\n* set the `APIDOC_REL_PATH` variable in `docker-compose.yml`. This should the relative path from the project root\n* start-up the demo as above.\n\nYou should be displaying your API as served by the server.\n\nTable of contents\n-------------\n* [Features](#features)\n* [Requirements](#req)\n* [Demo](#demo)\n* [Usage](#usage)\n\n\u003ca name=\"features\"\u003e\u003c/a\u003e\nFeatures\n-------------\nhydrus supports the following features:\n- A client that can understand Hydra vocabulary and interacts with a Hydra supporting server to basic [CRUD](https://en.wikipedia.org/wiki/Create,_read,_update_and_delete) operations on data.\n- A generic server that can serve required data and metadata(in the form of API documentation) to a client over HTTP.\n- A middleware that allows users to use the client to interact with the server using Natural Language which is processed machine consumable language. **(under development)**\n\n\u003ca name=\"req\"\u003e\u003c/a\u003e\nRequirements\n-------------\nThe system is built over the following standards and tools:\n- [Flask](http://flask.pocoo.org/) a Python based micro-framework for handling server requests and responses.\n- [JSON-LD](http://json-ld.org/spec/latest/json-ld/) as the preferred data format.\n- [Hydra](http://www.hydra-cg.com/) as the API standard.\n- [SQLAlchemy](http://www.sqlalchemy.org/) as the backend database connector for storage and related operations.\n\nApart from this, there are also various Python packages that hydrus uses. Using `python setup.py install` installs all the required dependencies.\n\n**NOTE:** You'll need to use `python3` not `python2`. Hydrus does not support python \u003c 3.6\n\n\u003ca name=\"demo\"\u003e\u003c/a\u003e\nDemo\n-------------\nTo run a demo for hydrus using the sample API, just do the following:\n\n1. Clone hydrus:\n```bash\ngit clone https://github.com/HTTP-APIs/hydrus\ncd hydrus\n```\n2. Install a [*Python virtual environment*](https://packaging.python.org/guides/installing-using-pip-and-virtual-environments/) using:\n```bash\npython3.8 -m venv .venv\n```\nor:\n```bash\nvirtualenv -p python3.8 .venv\n```\n\n3. Install hydrus using:\n```bash\nsource .venv/bin/activate\npip install -r requirements.txt\npython setup.py install\n```\n\nNOTE: there is an alternative way to install dependencies with `poetry`:\n```bash\npip3 install poetry\npoetry install\n```\nThis is mostly used to check dependencies conflicts among packages and to release to `PyPi`.\n \nAfter installation is successful, to *run the server*:\n```bash\nhydrus serve\n```\n\nThe demo should be up and running on `http://localhost:8080/serverapi/`.\n\n\u003ca name=\"usage\"\u003e\u003c/a\u003e\nUsage\n-------------\nFor more info, head to the [Usage](http://www.hydraecosystem.org/01-Usage.html) section of the [wiki](http://www.hydraecosystem.org/).\n\n\nDevelopment\n-------------\n\n1. Install git hook: `pre-commit install`\n2. Every time code is committed, automated checks are run using `mypy` and `pylint`","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhttp-apis%2Fhydrus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhttp-apis%2Fhydrus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhttp-apis%2Fhydrus/lists"}