{"id":27396877,"url":"https://github.com/kristapsdz/openradtool","last_synced_at":"2025-04-14T00:48:35.257Z","repository":{"id":40319971,"uuid":"87853637","full_name":"kristapsdz/openradtool","owner":"kristapsdz","description":"application source generator","archived":false,"fork":false,"pushed_at":"2024-08-26T06:12:33.000Z","size":2760,"stargazers_count":43,"open_issues_count":0,"forks_count":7,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-08-26T22:05:27.648Z","etag":null,"topics":["database-modeling","rapid-development","sqlite"],"latest_commit_sha":null,"homepage":"https://kristaps.bsd.lv/openradtool","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kristapsdz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":"audit-example.ort","citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-04-10T20:16:19.000Z","updated_at":"2024-08-25T22:16:32.000Z","dependencies_parsed_at":"2024-05-20T23:43:57.717Z","dependency_job_id":"be969c15-68ef-4d7d-ae61-1bffdd5d810a","html_url":"https://github.com/kristapsdz/openradtool","commit_stats":null,"previous_names":[],"tags_count":152,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kristapsdz%2Fopenradtool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kristapsdz%2Fopenradtool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kristapsdz%2Fopenradtool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kristapsdz%2Fopenradtool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kristapsdz","download_url":"https://codeload.github.com/kristapsdz/openradtool/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248804770,"owners_count":21164131,"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":["database-modeling","rapid-development","sqlite"],"created_at":"2025-04-14T00:48:34.470Z","updated_at":"2025-04-14T00:48:35.249Z","avatar_url":"https://github.com/kristapsdz.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Introduction\n\n**openradtool** (\"**ort**\") translates a data model (data layout and\noperations) into C, SQL ([SQLite3](https://sqlite.org)), and TypeScript\ncode.  It also has a raft of related features, such as role-based access\ncontrol, auditing, full documentation of generated sources, etc.\n\nTo keep up to date with the current stable release of **openradtool**, visit\nhttps://kristaps.bsd.lv/openradtool.  The website also contains canonical\ninstallation, deployment, examples, and usage documentation.\n\n## Installation\n\nClone or update your sources.  Configure with `./configure`, compile\nwith `make` (BSD make, so it may be `bmake` on your system), then `make\ninstall` (or use `sudo` or `doas`, if applicable).\n\nTo install in an alternative directory to `/usr/local`, set the `PREFIX`\nvariable when you run `configure`.\n\n```sh\n./configure PREFIX=$HOME/.local\nmake\nmake install\n```\n\nIf you plan on using `pkg-config` with the above invocation, make sure\nthat *~/.local/lib/pkgconfig* is recognised as a path to package\nspecifications.  You'll also want to make sure that `man` can access the\ninstalled location of *~/.local/man*, in this case.\n\nGood luck!\n\n## Tests\n\nIt's useful to run the installed regression tests on the bleeding edge\nsources.  (Again, this uses BSD make, so it may be `bmake` on your\nsystem.)  The full regression suite is extensive and may take several\nminutes to run to completion.\n\nNone of the tests require an external network, though some will use an\ninternal network connection to test client/server mode.\n\n```sh\nmake regress\n```\n\nThe TypeScript and Node.js regression tests will use Node.js tools if\navailable, though it will not configure these for you.  You'll need\n[npm](https://www.npmjs.com) for this to work.\n\n```sh\nnpm install\nmake regress\n```\n\nThis will use the *package.json* and *package-lock.json* files to\nconfigure the *node_modules* subdirectory required for the regression\ntests.  You can safely remove the *node_modules* directory at any time,\nthough you will need to re-run `npm install` to recreate it.  Once\ninstalled, the regression suite will automatically pick these up.\n\nTo enable picking up the Node.js tests, set the `TS_NODE` variable\nto the *ts-node* script, usually *node\\_modules/.bin/ts-node*, in the\n*Makefile*.  Alternatively, drop it into a *Makefile.local* that will be\nincluded by the *Makefile*.\n\nTo test JSON output, you'll need both the Node.js installation (as described\nabove) and the [py-jsonschema](http://github.com/Julian/jsonschema) (sometimes\nlisted as py3-jsonschema) utilities installed for validating JSON against a\nschema.\n\nTo enable picking up the JSON tests, set the `TS_JSONSCHEMA` variable to\nthe *typescript-json-shema* script, usually\n*node\\_modules/.bin/typescript-json-schema*, in the *Makefile*.\nOr alternatively, again, in a *Makefile.local*.\n\nThe C interface tests need [kcgi](https://kristaps.bsd.lv/kcgi),\n[libcurl](https://curl.se/libcur),\n[sqlbox](https://kristaps.bsd.lv/sqlbox), and\n[sqlite3](https://sqlite.org) installed.  The regression suite will\nautomatically pick these up.\n\nThe XLIFF tests need [xmllint](http://xmlsoft.org/) to validate the\nXLIFF output.  The XSD files are included in the regression suite, so no\nnetwork connection is made to fetch them.\n\nTo enable picking up the XLIFF tests, set the `XMLLINT` variable to\nthe *xmllint* program in the *Makefile* or a *Makefile.local*.\n\nThe rust tests need [cargo](https://crates.io) to operate.  Prior to\nrunning the tests, dependencies must be downloaded.  Regression builds\nare all performed in offline mode.  (The addition of the *main.rs* file\nis just to silence the target test.  The file will be overwritten when\nregression tests are run.)\n\n```sh\ncd rust\nmkdir -p rust/src\necho \"fn main(){}\" \u003e rust/src/main.rs\ncargo fetch\ncd ..\nmake regress\n```\n\nAs usual, you'll need a `CARGO` variable in the *Makefile* or\n*Makefile.local* set to the *cargo* binary.\n\n## License\n\nAll sources use the ISC (like OpenBSD) license.  See the\n[LICENSE.md](LICENSE.md) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkristapsdz%2Fopenradtool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkristapsdz%2Fopenradtool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkristapsdz%2Fopenradtool/lists"}