{"id":15061199,"url":"https://github.com/astrada/gapi-ocaml","last_synced_at":"2026-01-03T22:29:03.460Z","repository":{"id":1837578,"uuid":"2761992","full_name":"astrada/gapi-ocaml","owner":"astrada","description":"A simple OCaml client for Google Services.","archived":false,"fork":false,"pushed_at":"2025-01-17T20:13:57.000Z","size":11892,"stargazers_count":93,"open_issues_count":6,"forks_count":20,"subscribers_count":5,"default_branch":"beta","last_synced_at":"2025-03-29T19:01:50.935Z","etag":null,"topics":["google-api","ocaml"],"latest_commit_sha":null,"homepage":"http://astrada.github.com/gapi-ocaml/","language":"OCaml","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"IdeaBlade/Breeze","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/astrada.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":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2011-11-12T14:45:01.000Z","updated_at":"2025-03-11T15:57:03.000Z","dependencies_parsed_at":"2024-06-19T12:12:50.350Z","dependency_job_id":"2e2c9eda-5f6d-45e1-9fdf-e34d57261add","html_url":"https://github.com/astrada/gapi-ocaml","commit_stats":{"total_commits":730,"total_committers":10,"mean_commits":73.0,"dds":"0.19041095890410964","last_synced_commit":"f55d765434df061a77bf0b752043d8b666f751e4"},"previous_names":[],"tags_count":61,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astrada%2Fgapi-ocaml","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astrada%2Fgapi-ocaml/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astrada%2Fgapi-ocaml/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astrada%2Fgapi-ocaml/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/astrada","download_url":"https://codeload.github.com/astrada/gapi-ocaml/tar.gz/refs/heads/beta","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247393566,"owners_count":20931812,"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":["google-api","ocaml"],"created_at":"2024-09-24T23:11:33.681Z","updated_at":"2026-01-03T22:29:03.454Z","avatar_url":"https://github.com/astrada.png","language":"OCaml","funding_links":[],"categories":[],"sub_categories":[],"readme":"Google APIs Client library for OCaml\n====================================\n\n**gapi-ocaml** is a simple, unofficial, OCaml client for Google Services. The\nlibrary supports ClientLogin, OAuth 1.0a, and OAuth 2.0 authentication.\nSupported RESTful APIs:\n\n* Calendar APIs v3\n* Google+ API v1\n* Tasks API v1\n* APIs Discovery Service v1\n* URL Shortener API v1\n* OAuth2 API v2\n* Custom Search API v1\n* Google Analytics API v3\n* Page Speed Online API v1\n* Blogger API v2\n* Site Verification API v1\n* AdSense Management API v1.1\n* BigQuery API v2\n* Drive API v2\n* Drive API v3\n* Gmail API v1\n* Sheets API v4\n\n### Features\n\n* Monadic interface\n* [Functional lenses](http://astrada.github.com/gapi-ocaml/GapiLens.html) to\n  access data structures\n* Service generator (experimental): a tool for generating client libraries for\n  APIs based on the Google API Discovery format\n\nBuilding gapi-ocaml\n-------------------\n\n### Requirements\n\nYou will need the following libraries:\n\n* [OCaml][] \u003e= 4.02.3\n* [Ocurl][] \u003e= 0.5.3\n* [Cryptokit][] \u003e= 1.21.1\n* [Yojson][] \u003e= 1.6.0\n* [OUnit][] \u003e= 1.1.0 (to build and run the tests, optional)\n\nThis library was developed and tested on Ubuntu LTS (64-bit).\n\n[OCaml]: http://www.ocaml.org/docs/install.html\n[Ocurl]: https://ygrek.org/p/ocurl/\n[Cryptokit]: https://github.com/xavierleroy/cryptokit\n[Yojson]: https://github.com/ocaml-community/yojson\n[OUnit]: http://ounit.forge.ocamlcore.org/\n\n### Configuration and installation\n\nTo build the library, run\n\n    $ make\n\nTo install the library, run (as root, if your user doesn't have enough\nprivileges)\n\n    $ make install\n\nTo build and run the tests, execute\n\n    $ make test\n\nSee `src/test/README.md` for further details regarding the tests.\n\nTo build the examples:\n\n    $ dune build @examples\n\nSee `examples/README.md` for further details regarding the examples.\n\nTo generate the documentation, run\n\n    $ make doc\n\nThen you can browse the HTML documentation starting from\n`gapi-ocaml.docdir/index.html`, but is not installed by default.\n\nTo uninstall anything that was previously installed, execute\n\n    $ make uninstall\n\n### Usage\n\nSee auth examples in `examples/auth` for some examples of how to use Google's\nauthorization endpoints.\n\nSee `examples` directory to find code samples that show usage of some\nservices.\n\nSee `tools/serviceGenerator.ml` for a complex example of how to use functional\nlenses within the state monad.\n\nSee `tools/README.md` for the instructions of how to build and run the service\ngenerator utility.\n\n### Ocamlnet\n\nTo support OCaml 5, I removed the direct dependency on Ocamlnet. To do so, I\nimported (in the `src` directory) the `netstring` and `netsys` libraries from\n[upstream](https://gitlab.com/gerdstolpmann/lib-ocamlnet3/-/tree/4d1a8401bd40c17632128545e2aa4c880535e208),\napplied the patches from this\n[PR](https://gitlab.com/gerdstolpmann/lib-ocamlnet3/-/merge_requests/21), and\nfurther patched the code to compile and run correctly.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastrada%2Fgapi-ocaml","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fastrada%2Fgapi-ocaml","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastrada%2Fgapi-ocaml/lists"}