{"_id":"greenlet","_rev":"16-19ade75d6cd0a795ab4cb7222f76ad58","name":"greenlet","description":"Move an async function into its own thread.","dist-tags":{"latest":"1.1.0"},"versions":{"0.1.0":{"name":"greenlet","version":"0.1.0","description":"Move an async function into its own thread.","source":"greenlet.js","main":"dist/greenlet.js","module":"dist/greenlet.m.js","scripts":{"build":"microbundle","test":"eslint *.js && karmatic"},"eslintConfig":{"extends":"eslint-config-developit"},"files":["greenlet.js"],"repository":{"type":"git","url":"git+https://github.com/developit/greenlet.git"},"keywords":["greenlet","thread","async","worker","web worker"],"author":{"name":"Jason Miller","email":"jason@developit.ca","url":"http://jasonformat.com"},"license":"MIT","homepage":"https://github.com/developit/greenlet","devDependencies":{"eslint":"^4.16.0","eslint-config-developit":"^1.1.1","karmatic":"^1.0.6","microbundle":"^0.4.2"},"gitHead":"aa122d0793c87e1ffdbd37083b115479723d397a","bugs":{"url":"https://github.com/developit/greenlet/issues"},"_id":"greenlet@0.1.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.2","_npmUser":{"name":"developit","email":"jason@developit.ca"},"dist":{"integrity":"sha512-4+fZ5tHDUaaMLLw8Efqu8N7zKJm88G0rTl4JY82WrglRllBniVJmi+tNWqXT8KWaXqJCfc8bC4jSGTkJZVePrQ==","shasum":"ad596ff39c3e802d2a8cf8dd04fbf457494deb52","tarball":"https://registry.npmjs.org/greenlet/-/greenlet-0.1.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHVAV8yDJ1lOQHeXPeEbqeTHRFo/Cy5810bUbvgrYvcQAiEApeS4x5uqb+LZmSkdUucwI8QknwPAs2sW0NIG6ec2W6g="}]},"maintainers":[{"name":"developit","email":"jason@developit.ca"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/greenlet-0.1.0.tgz_1516925485423_0.1911350826267153"},"directories":{}},"0.1.1":{"name":"greenlet","version":"0.1.1","description":"Move an async function into its own thread.","source":"greenlet.js","main":"dist/greenlet.js","module":"dist/greenlet.m.js","scripts":{"prepare":"microbundle","test":"eslint *.js && npm run -s prepare && karmatic","release":"npm run -s prepare && npm test && git commit -am $npm_package_version && git tag $npm_package_version && git push && git push --tags && npm publish"},"eslintConfig":{"extends":"eslint-config-developit"},"files":["greenlet.js"],"repository":{"type":"git","url":"git+https://github.com/developit/greenlet.git"},"keywords":["greenlet","thread","async","worker","web worker"],"author":{"name":"Jason Miller","email":"jason@developit.ca","url":"http://jasonformat.com"},"license":"MIT","homepage":"https://github.com/developit/greenlet","devDependencies":{"eslint":"^4.16.0","eslint-config-developit":"^1.1.1","karmatic":"^1.0.6","microbundle":"^0.4.3"},"gitHead":"1fb13f4ec0b83fc02851dad5c81fce657a703968","bugs":{"url":"https://github.com/developit/greenlet/issues"},"_id":"greenlet@0.1.1","_npmVersion":"5.6.0","_nodeVersion":"8.9.2","_npmUser":{"name":"developit","email":"jason@developit.ca"},"dist":{"integrity":"sha512-/70DjWmy8OZzoWFScMF6DtGUK48Z0Pu0BahyjqMyPoT6vF96D4ys7/jmee/0sQLwOl4oNsp3AH6bkdldhfjFaw==","shasum":"98742b9b6254657dc657ed35d12fc02ffbb7dd52","tarball":"https://registry.npmjs.org/greenlet/-/greenlet-0.1.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFseku80UHfZ28ufptvGNoVMhy5b/7LwW9Z0BmIYZPlBAiBk6hFYN12YmNL2wOYH3nLf0VdQiUcKQ8/Fv/XWKuKRlg=="}]},"maintainers":[{"name":"developit","email":"jason@developit.ca"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/greenlet-0.1.1.tgz_1517243053249_0.29206805559806526"},"directories":{}},"0.1.2":{"name":"greenlet","version":"0.1.2","description":"Move an async function into its own thread.","source":"greenlet.js","main":"dist/greenlet.js","module":"dist/greenlet.m.js","scripts":{"prepare":"microbundle","test":"eslint *.js && npm run -s prepare && karmatic","release":"npm run -s prepare && npm test && git commit -am $npm_package_version && git tag $npm_package_version && git push && git push --tags && npm publish"},"eslintConfig":{"extends":"eslint-config-developit"},"files":["greenlet.js","dist"],"repository":{"type":"git","url":"git+https://github.com/developit/greenlet.git"},"keywords":["greenlet","thread","async","worker","web worker"],"author":{"name":"Jason Miller","email":"jason@developit.ca","url":"http://jasonformat.com"},"license":"MIT","homepage":"https://github.com/developit/greenlet","devDependencies":{"eslint":"^4.16.0","eslint-config-developit":"^1.1.1","karmatic":"^1.0.6","microbundle":"^0.4.3"},"gitHead":"8f51450aab0e1f98842e6ab74af38eb543d54ff3","bugs":{"url":"https://github.com/developit/greenlet/issues"},"_id":"greenlet@0.1.2","_npmVersion":"5.6.0","_nodeVersion":"8.9.2","_npmUser":{"name":"developit","email":"jason@developit.ca"},"dist":{"integrity":"sha512-8YZTbTmJW513BZBnxk5GlvFEZ/iaiyPnazNet0TBBD/tICkDj+xQreQ231MisSM2Dz8GfZCwbcH7k9HKfFzcMw==","shasum":"6fe3a88a9cd324b021b7a1fe1fa74f720c3d391c","tarball":"https://registry.npmjs.org/greenlet/-/greenlet-0.1.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD9ihn+NXNuJjssbeqS5I/rgwz8VPt8I2YM2vCRnZCjZwIgHukaN6vU7AD4qzMz8McrwZYho3fIsv21itdZD+PImSQ="}]},"maintainers":[{"name":"developit","email":"jason@developit.ca"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/greenlet-0.1.2.tgz_1517243183263_0.5632895929738879"},"directories":{}},"1.0.0":{"name":"greenlet","version":"1.0.0","description":"Move an async function into its own thread.","source":"greenlet.js","main":"dist/greenlet.js","module":"dist/greenlet.m.js","types":"./index.d.ts","scripts":{"prepare":"microbundle","test":"eslint *.js && npm run -s prepare && karmatic","release":"npm run -s prepare && npm test && git commit -am $npm_package_version && git tag $npm_package_version && git push && git push --tags && npm publish"},"eslintConfig":{"extends":"eslint-config-developit","rules":{"prefer-spread":0,"prefer-rest-params":0}},"files":["greenlet.js","index.d.ts","dist"],"repository":{"type":"git","url":"git+https://github.com/developit/greenlet.git"},"keywords":["greenlet","thread","async","worker","web worker"],"author":{"name":"Jason Miller","email":"jason@developit.ca","url":"http://jasonformat.com"},"license":"MIT","homepage":"https://github.com/developit/greenlet","devDependencies":{"eslint":"^4.16.0","eslint-config-developit":"^1.1.1","karmatic":"^1.0.6","microbundle":"^0.4.3"},"gitHead":"156e0ddf53d80fb2c1b73931bd0693fd8f740a96","bugs":{"url":"https://github.com/developit/greenlet/issues"},"_id":"greenlet@1.0.0","_npmVersion":"5.7.1","_nodeVersion":"8.9.4","_npmUser":{"name":"developit","email":"jason@developit.ca"},"dist":{"integrity":"sha512-WR5js4nCjqq/8EePZYbEdpmWIf3bsaj05/8YtrRLNzJXJnbgBLZ92JVnQdyBii6XG6ipxoKK4VeVeFw9LlmU5A==","shasum":"5233555249af0f027bbb3bdb448b114f9cef2711","tarball":"https://registry.npmjs.org/greenlet/-/greenlet-1.0.0.tgz","fileCount":10,"unpackedSize":18874,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa+wBdCRA9TVsSAnZWagAAvNgP+wTuiAVwpTA2jL2dOFgH\nJBB7EZfLImLoSuCrl7+E/UbimdsSj+22FarIEEj0oZVdYplSw/AVFgfi4Gf1\n07BpD+SxvUegirVeaJ2B8ca7bNzJl64rwu+9Zull/YUvoaqCVP7oP835ur2k\nf2/s9PTZ+UDBH7GyqwjhkMYeLRqKOcBoOrssZTFtWiueexuEJjl3AcnSEi2r\n5izGqmpP1z8m4iwVAGlw7szLBdaz5CDEWv3ai7QWMUHo121ciEDuKUk4VKUv\n91nkmOBssT82/ct9HxfA476wozcUWp+EWKJq9g2RH5lNdLlG8fPBiD8X6mUp\nuWsOYRLpEsKAFN0180MhnjRXk5/05FtxdduqmJsTalzpMPRIICBII3RST9r3\n1xvWfLGAo8oSRJrOxWn6dNrq/V7QPnPjQJsz12SMLsaj+HuJQSgcPxX1NWTQ\nvvoLvqBEj8sxo5yjHDqkU3wEQ1V1WqS4DowBN7fB/iNU+cmcWsQO/vw2V0sY\nRuLi937Eu1ltSME1omQ9kLw740nkkHqp0O3oPSkuMYl5GNUgwqaFfcuMMtIO\ncqaXPNbpDXxFaIv3PVAOzjWtkdAxaUwnNZH/4eYqvqa7u1j8Uta2XeVJ8+81\nl7mpFrOyvOrO9dqx3YKD1Y+PSVBs68Fj8Xvc4BTWw5DxqgY3IRznYeRgp/pv\nzr3P\r\n=mk7O\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAQsJHR7hhqMLQYcTtLA0xVOfu4T4yRixCuo5VG3FU8sAiA1BEW+BEEDsweMhIVOV4PIy9IyOHYbG0e1NMtHk79Xew=="}]},"maintainers":[{"name":"developit","email":"jason@developit.ca"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/greenlet_1.0.0_1526399068437_0.39815510984416536"},"_hasShrinkwrap":false},"1.0.1":{"name":"greenlet","version":"1.0.1","description":"Move an async function into its own thread.","source":"greenlet.js","main":"dist/greenlet.js","module":"dist/greenlet.m.js","types":"./index.d.ts","scripts":{"prepare":"microbundle","test":"eslint *.js && npm run -s prepare && karmatic","release":"npm run -s prepare && npm test && git commit -am $npm_package_version && git tag $npm_package_version && git push && git push --tags && npm publish"},"eslintConfig":{"extends":"eslint-config-developit","rules":{"prefer-spread":0,"prefer-rest-params":0}},"files":["greenlet.js","index.d.ts","dist"],"repository":{"type":"git","url":"git+https://github.com/developit/greenlet.git"},"keywords":["greenlet","thread","async","worker","web worker"],"author":{"name":"Jason Miller","email":"jason@developit.ca","url":"http://jasonformat.com"},"license":"MIT","homepage":"https://github.com/developit/greenlet","devDependencies":{"eslint":"^4.16.0","eslint-config-developit":"^1.1.1","karmatic":"^1.0.6","microbundle":"^0.4.3"},"gitHead":"2c73fe2b0fc0886a4cc7dc409f8d51713da01e60","bugs":{"url":"https://github.com/developit/greenlet/issues"},"_id":"greenlet@1.0.1","_npmVersion":"5.7.1","_nodeVersion":"8.9.4","_npmUser":{"name":"developit","email":"jason@developit.ca"},"dist":{"integrity":"sha512-srK6gegTVzHkRpLK3fFqJ4tuEeuCut9WzmL8EjKsOOlyKRb1GIWlUg09c832pYKzUWkYa2QDSkyDs47+yfoDQA==","shasum":"5d2708dc75bda084ee06d27ebb207671cbf202be","tarball":"https://registry.npmjs.org/greenlet/-/greenlet-1.0.1.tgz","fileCount":10,"unpackedSize":19184,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa+xJcCRA9TVsSAnZWagAAw6IP/jDiDXRfDITgqfDOf2ra\n6p8DzZlpEqv4xSEACaoLzx4t813oA6X0NITVIw6xF3edUgrPPrk7D7ZGjUJl\nQ02tetJdEvh6jCvPQqBphvhCFJzGvS2M/XtK1ZYgpxHt9yUk3w2u5A84STvq\n/UnjitJ++WtVjHy4FwhEWhNS1ktV6tXsmd9F4/o1A/umBqI6ahHS21di/nLV\nTzhhEpvKcKxM8E576t+uGrzdiSuNgB3izemdgDOBeo6ktseh8/4GfpKyBh2R\nkgfVdrPMSvShwSBD3mA2Em0c30R2uhwcxiexGJ0DuY1bJ8wc9AO+qBe1TjH+\n8Q5EGsBNaLaJwlHE+0gw+/nLpZVC9QQOMKvBYLB3yYL3EZIPRggwU6AS64jB\nOcuPkzzt2AB4fOyUZm9UVQEsd2W6sYdYsCVc/wgR1IjMNnWqXPd0ZamVcCdq\nca7gAcctoXo0WMzZhZ7yGcQVvl32NsmADGIkHnjneby8Airfr7gotPGMq8VY\nF6NJzQpZ5+3X0DEHFxqWT0RFlEq9qWowxRFFoELh9gWQTgMPWwAZdeMrPMwd\nYJX7ISHfvMonDiIRSawwaSuaGyelxAiBaSJ8rd8K2F8lFM+2m3Mr5B9ygHax\n5b4WUTPPsEhuty7/Sc02ybubkGrRm6Ktu6ViFchrknqoA44qS1APxHS9fMfk\n1ABB\r\n=gD8W\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDonF445tpPIQcUATam8X8KyWhzygMOqIhGD8YHmmFUTAiEA6Cpj477lwfW/wpJ1VgGNCa1Xp/SKyEJhwbrxXBjULW8="}]},"maintainers":[{"name":"developit","email":"jason@developit.ca"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/greenlet_1.0.1_1526403675582_0.547669831511663"},"_hasShrinkwrap":false},"1.1.0":{"name":"greenlet","version":"1.1.0","description":"Move an async function into its own thread.","source":"greenlet.js","main":"dist/greenlet.js","module":"dist/greenlet.m.js","types":"./index.d.ts","scripts":{"prepare":"microbundle","test":"eslint *.js && npm run -s prepare && karmatic --no-coverage","release":"npm run -s prepare && npm test && git commit -am $npm_package_version && git tag $npm_package_version && git push && git push --tags && npm publish"},"eslintConfig":{"extends":"eslint-config-developit","rules":{"prefer-spread":0,"prefer-rest-params":0}},"repository":{"type":"git","url":"git+https://github.com/developit/greenlet.git"},"keywords":["greenlet","thread","async","worker","web worker"],"author":{"name":"Jason Miller","email":"jason@developit.ca","url":"http://jasonformat.com"},"license":"MIT","homepage":"https://github.com/developit/greenlet","devDependencies":{"eslint":"^4.16.0","eslint-config-developit":"^1.1.1","karmatic":"^1.4.0","microbundle":"^0.4.3","webpack":"^4.29.6"},"gitHead":"c1f2c2a666c420881fab372a5a7659e316a8357b","bugs":{"url":"https://github.com/developit/greenlet/issues"},"_id":"greenlet@1.1.0","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-W/kKzq7ZSF/LFItIjaSaccw8L6js+9SMSS5buXZs/Td7qZAT91Kd0LTxuUjSWDwuyv4MPo/fhZdkRLV1zsuClg==","shasum":"a35f119abc1ba5af052b61e46b4f1cbd7559de0b","tarball":"https://registry.npmjs.org/greenlet/-/greenlet-1.1.0.tgz","fileCount":10,"unpackedSize":20899,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdk7foCRA9TVsSAnZWagAAgsEP/1FQrmX5orxbNvUY+t2S\nevkFoWTxTqqcgY5q2t2vHQv5cyGcsMYjeSFAF7MROsufCFC6g8+S0WVOySCI\n4mSungBjejyp4WXPNveXK/OqI29BBVJmThwHvDRd2MjZ/VlWPvpVlkcL0Nmy\ndmc4xQcqaMnCnHY2zyZ22BT/1u1IY3+ZLlV1gv+mBAQ7aOKeuoA52FKlLUJP\nwqelM7noJcwQyCs6rQStBISAO80eAlvYyCu+ysVqXmkZxMbGjDVhrPrQu5hm\n5jLCmjae60YHthHl7ggPCq6PhlMMp9HiSd4VQRuYrGxdH8sxU7U/p+oz1LYD\no3c88WOyKEROlexVniIud8WuwFfJlFJrqG2mJzYYof/iy7GbzLarHW8ccP+x\n650zXkAUf+FCUbVfUWF7uzeL80I/9fuyh4m754+kpMpv1xovUA81yilAzhfT\njGuAleZq2E7xukHh4pn7a4U63GhL8YTpNYUELM1SWla4rwQc+GVYkRR6MPZx\npewemvj2jwiHrZkwaJV255t/0BGxL50/4F+aY2j2nbAwKaYOTMTfvUpyv3Sh\nCM21OmwKkjaoBrmVMtlzrBL4Zaki51D13/S1e83pMWm3DKWfCKdbkXo27mhC\nJfp0LYYoNTWkVmU8lgr95sOrAk/D/9QDlJD8cNgByeCb7txEzHwslNXh3WP8\nfCDm\r\n=NH+Q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEyH/D7UlfrkJot7WePESfecLh9Nk4RrplJIqecmUtB0AiEAiDWiiaRp5DjR7H+Y6qQ/SqCtQJIMPzs1OSAvupBqAg4="}]},"maintainers":[{"name":"developit","email":"jason@developit.ca"}],"_npmUser":{"name":"developit","email":"jason@developit.ca"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/greenlet_1.1.0_1569961959976_0.17756419415778346"},"_hasShrinkwrap":false}},"readme":"<p align=\"center\">\n  <img src=\"https://i.imgur.com/e8XbYbd.png\" width=\"1000\" alt=\"Greenlet\">\n</p>\n\n## Greenlet [![npm](https://img.shields.io/npm/v/greenlet.svg)](https://npm.im/greenlet) [![travis](https://travis-ci.org/developit/greenlet.svg?branch=master)](https://travis-ci.org/developit/greenlet) [![gzip size](http://img.badgesize.io/https://unpkg.com/greenlet/dist/greenlet.js?compression=gzip)](https://unpkg.com/greenlet/dist/greenlet.umd.js) [![install size](https://packagephobia.now.sh/badge?p=greenlet)](https://packagephobia.now.sh/result?p=greenlet)\n\n> Move an async function into its own thread.\n>\n> A simplified single-function version of [workerize](https://github.com/developit/workerize), offering [the same performance as direct Worker usage](https://esbench.com/bench/5b16b61af2949800a0f61ce3).\n\nThe name is somewhat of a poor choice, but it was [available on npm](https://npm.im/greenlet).\n\n_Greenlet only supports browser environments, since it uses [Web Workers](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers). For use in a NodeJS environment, Web Workers must be polyfilled using a library like [node-webworker](https://github.com/pgriess/node-webworker)._\n\n## Installation & Usage\n\n```sh\nnpm i -S greenlet\n```\n\nAccepts an async function with, produces a copy of it that runs within a Web Worker.\n\n> ⚠️ **Caveat:** the function you pass cannot rely on its surrounding scope, since it is executed in an isolated context.\n\n```\ngreenlet(Function) -> Function\n```\n\n> ‼️ **Important:** never call greenlet() dynamically. Doing so creates a new Worker thread for every call:\n\n```diff\n-const BAD = () => greenlet(x => x)('bad') // creates a new thread on every call\n+const fn = greenlet(x => x);\n+const GOOD = () => fn('good'); // uses the same thread on every call\n```\n\nSince Greenlets can't rely on surrounding scope anyway, it's best to always create them at the \"top\" of your module.\n\n\n## Example\n\nGreenlet is most effective when the work being done has relatively small inputs/outputs.\n\nOne such example would be fetching a network resource when only a subset of the resulting information is needed:\n\n```js\nimport greenlet from 'greenlet'\n\nlet getName = greenlet( async username => {\n    let url = `https://api.github.com/users/${username}`\n    let res = await fetch(url)\n    let profile = await res.json()\n    return profile.name\n})\n\nconsole.log(await getName('developit'))\n```\n\n[🔄 **Run this example on JSFiddle**](https://jsfiddle.net/developit/mf9fbma5/)\n\n\n## Transferable ready\n\nGreenlet will even accept and optimize [transferables](https://developer.mozilla.org/en-US/docs/Web/API/Transferable) as arguments to and from a greenlet worker function.\n\n\n## Browser support\n\nThankfully, Web Workers have been around for a while and [are broadly supported](https://caniuse.com/#feat=webworkers) by Chrome, Firefox, Safari, Edge, and Internet Explorer 10+.\n\nIf you still need to support older browsers, you can just check for the presence of `window.Worker`:\n\n```js\nif (window.Worker) {\n    ...\n} else {\n    ...\n}\n```\n\n### CSP\n\nIf your app has a [Content-Security-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy),\nGreenlet requires `worker-src data:` and `script-src data:` in your config.\n\n## License & Credits\n\n> In addition to the contributors, credit goes to [@sgb-io](https://github.com/sgb-io) for his annotated exploration of Greenlet's source. This prompted a refactor that clarified the code and allowed for further size optimizations.\n\n[MIT License](https://oss.ninja/mit/developit)\n","maintainers":[{"name":"developit","email":"jason@developit.ca"}],"time":{"modified":"2022-05-04T03:50:18.712Z","created":"2018-01-26T00:11:25.525Z","0.1.0":"2018-01-26T00:11:25.525Z","0.1.1":"2018-01-29T16:24:13.351Z","0.1.2":"2018-01-29T16:26:24.159Z","1.0.0":"2018-05-15T15:44:28.492Z","1.0.1":"2018-05-15T17:01:15.679Z","1.1.0":"2019-10-01T20:32:40.122Z"},"homepage":"https://github.com/developit/greenlet","keywords":["greenlet","thread","async","worker","web worker"],"repository":{"type":"git","url":"git+https://github.com/developit/greenlet.git"},"author":{"name":"Jason Miller","email":"jason@developit.ca","url":"http://jasonformat.com"},"bugs":{"url":"https://github.com/developit/greenlet/issues"},"license":"MIT","readmeFilename":"README.md","users":{"developit":true,"beiluo":true,"jaggedsoft":true,"stefan.gebhardt":true,"jacob-beltran":true,"wfalkwallace":true,"sonufrienko":true,"drewigg":true,"tomi77":true,"ribizli":true}}