{"id":20782622,"url":"https://github.com/toktok/apidsl","last_synced_at":"2025-04-30T23:58:47.050Z","repository":{"id":29674122,"uuid":"33216410","full_name":"TokTok/apidsl","owner":"TokTok","description":"DSL for C APIs to aid consistency of naming schemes and comments.","archived":false,"fork":false,"pushed_at":"2024-06-09T15:03:03.000Z","size":403,"stargazers_count":6,"open_issues_count":6,"forks_count":3,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-04-30T23:58:41.621Z","etag":null,"topics":["consistency","dsl","naming-schemes","ocaml"],"latest_commit_sha":null,"homepage":"https://toktok.ltd/","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TokTok.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null}},"created_at":"2015-03-31T23:51:38.000Z","updated_at":"2023-09-08T16:56:14.000Z","dependencies_parsed_at":"2022-08-18T19:10:11.392Z","dependency_job_id":null,"html_url":"https://github.com/TokTok/apidsl","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TokTok%2Fapidsl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TokTok%2Fapidsl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TokTok%2Fapidsl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TokTok%2Fapidsl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TokTok","download_url":"https://codeload.github.com/TokTok/apidsl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251801180,"owners_count":21645968,"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":["consistency","dsl","naming-schemes","ocaml"],"created_at":"2024-11-17T14:13:38.355Z","updated_at":"2025-04-30T23:58:47.028Z","avatar_url":"https://github.com/TokTok.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# APIDSL\n\nA [DSL](http://en.wikipedia.org/wiki/Domain-specific_language) for **C** API's\nto add consistency of naming schemes and comments.\n\n## INSTALLATION\n\n### Regular\n\nYou will need **OCaml** (\u003e= 4.03; older versions may not work) and **OPAM** (at\nleast 1.2). Instructions on how to install **OCaml** and **OPAM** can be found\n[here](https://opam.ocaml.org/doc/Install.html).\n\nFor `make coverage` you also need `oasis` and `bisect_ppx`. The coverage script\nwill attempt to install these if they are not yet installed.\n\n#### Installing dependencies:\n\nMake sure to configure **OPAM** by running `opam init`. (Depending on your\nconfiguration you might also need to run `` eval `opam config env` ``). Running\n`opam install ocamlfind ppx_deriving menhir` should install all dependencies\nrequired for APIDSL.\n\n#### Compiling\n\nJust run `make` in APIDSL's root directory. The apidsl binary can be found\nunder `./_build/apigen.native`\n\n### Docker\n\nAlternatively, you can use Docker to build APIDSL. This is useful when your\nLinux distribution doesn't have the versions of dependencies required for APIDSL\nor you don't want to pollute your system by installing all those dependencies.\n\n#### Usage\n\n[Get Docker on your system](https://docs.docker.com/engine/installation/linux/).\nNote that some versions of\n[Debian](https://packages.debian.org/search?suite=all\u0026searchon=names\u0026keywords=docker.io)\nand [Ubuntu](http://packages.ubuntu.com/search?suite=all\u0026searchon=names\u0026keywords=docker.io)\nhave it in their package repository.\n\nRun the following. It takes about 4 minutes to run on my machine, so you can\ngrab a cup of coffee/tea in the meantime.\n\n```sh\n# Clone this repository\ngit clone https://github.com/TokTok/apidsl\ncd apidsl\n# Build \"apidsl\" Docker image based on Dockerfile instructions\ndocker build -t apidsl .\n# Run the image, i.e. execute the CMD part of the Dockerfile, mounting the\n# current directory (the APIDSL repository) as /apidsl inside the image\ndocker run --rm -v $PWD:/apidsl apidsl\n# Make sure apigen.native has appeared in the current directory\nls -lbh apigen.native\n# Copy it over to /usr/local/bin\nsudo cp ./apigen.native /usr/local/bin/\n\n# Optional Cleanup\n# Delete the image we have built\ndocker rmi apidsl ocaml/opam:alpine-3.15-ocaml-4.13-flambda-fp\n# Make sure no related containers or images are left.\n# They may use a lot of disk space.\ndocker ps -a\ndocker images -a\n```\n\nYou should now have `/usr/local/bin/apigen.native`.\n\n## USAGE\n\nTODO, but you can check some examples in tests directory.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftoktok%2Fapidsl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftoktok%2Fapidsl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftoktok%2Fapidsl/lists"}