{"id":16488725,"url":"https://github.com/bts/nylas-hs","last_synced_at":"2026-06-04T21:31:15.317Z","repository":{"id":56873996,"uuid":"38938783","full_name":"bts/nylas-hs","owner":"bts","description":"Haskell client for the Nylas web API","archived":false,"fork":false,"pushed_at":"2017-08-15T12:55:47.000Z","size":47,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-01T02:25:00.173Z","etag":null,"topics":["client","haskell","http","nylas","pipes"],"latest_commit_sha":null,"homepage":null,"language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bts.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-07-11T20:03:13.000Z","updated_at":"2022-06-26T21:31:54.000Z","dependencies_parsed_at":"2022-08-20T10:11:00.390Z","dependency_job_id":null,"html_url":"https://github.com/bts/nylas-hs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bts/nylas-hs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bts%2Fnylas-hs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bts%2Fnylas-hs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bts%2Fnylas-hs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bts%2Fnylas-hs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bts","download_url":"https://codeload.github.com/bts/nylas-hs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bts%2Fnylas-hs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286079811,"owners_count":27282121,"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","status":"online","status_checked_at":"2025-11-25T02:00:05.816Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["client","haskell","http","nylas","pipes"],"created_at":"2024-10-11T13:39:45.596Z","updated_at":"2025-11-25T03:07:33.568Z","avatar_url":"https://github.com/bts.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# nylas\n\n[![Hackage](https://img.shields.io/hackage/v/nylas.svg)](https://hackage.haskell.org/package/nylas)\n [![Build Status](https://api.travis-ci.org/bts/nylas-hs.svg)](https://travis-ci.org/bts/nylas-hs)\n\nA _partially complete_ Haskell client for the [Nylas](https://nylas.com)\n[HTTP API](https://www.nylas.com/docs/platform), powered by\n[lens](https://hackage.haskell.org/package/lens) and\n[pipes](https://hackage.haskell.org/package/pipes). At the moment I've only\nimplemented support for the endpoints I need.\n\nPull requests for the support of additional endpoints would be greatly\nappreciated!\n\nSee Hackage for [documentation](http://hackage.haskell.org/package/nylas).\n\n## Features\n\n* constant-space stream ingestion of the\n  [changes](https://www.nylas.com/docs/platform#deltas) (currently only message\n  and thread objects) to an inbox since a given transactional cursor (or the\n  beginning of time)\n* requesting a message object\n* requesting a thread object\n\n## Quickstart\n\nThe following example prints out all of the (thread and message) changes to an\ninbox using pipes:\n\n```haskell\n{-# LANGUAGE OverloadedStrings #-}\n\nmodule Quickstart where\n\nimport qualified Data.ByteString.Char8 as B\nimport           Data.Monoid           ((\u003c\u003e))\nimport           Pipes                 (runEffect, (\u003e-\u003e))\nimport           Pipes.HTTP            (newManager, tlsManagerSettings)\nimport qualified Pipes.Prelude         as P\n\nimport           Network.Nylas\n\ntoken :: AccessToken\ntoken = AccessToken \"_PUT_YOUR_ACCESS_TOKEN_HERE_\"\n\nmain :: IO ()\nmain = do\n  mgr \u003c- newManager tlsManagerSettings\n  let cursor = Nothing\n  res \u003c- consumeDeltas mgr token cursor (P.map show \u003e-\u003e P.print)\n  case res of\n    Left (ParsingError err remainder) -\u003e do\n      putStrLn $ \"ERROR: \" \u003c\u003e show err\n      putStrLn \"next few items:\"\n      runEffect $ remainder \u003e-\u003e P.take 3 \u003e-\u003e P.map B.unpack \u003e-\u003e P.stdoutLn\n    Left (ConsumerError _) -\u003e error \"not possible\"\n    Right _ -\u003e return ()\n```\n\n## License (3-clause BSD)\n\nCopyright (c) 2015, Brian Schroeder\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without modification,\nare permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice, this\n  list of conditions and the following disclaimer in the documentation and/or\n  other materials provided with the distribution.\n\n* Neither the name of Brian Schroeder nor the names of other contributors may be\n  used to endorse or promote products derived from this software without\n  specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\nANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbts%2Fnylas-hs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbts%2Fnylas-hs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbts%2Fnylas-hs/lists"}