{"id":17693396,"url":"https://github.com/ttytm/haskell-async-requests-example","last_synced_at":"2025-03-30T23:18:06.152Z","repository":{"id":112548490,"uuid":"608249869","full_name":"ttytm/haskell-async-requests-example","owner":"ttytm","description":"Example in Haskell that focuses on concurrent async requests.","archived":false,"fork":false,"pushed_at":"2023-03-01T16:22:06.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-28T19:11:50.144Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ttytm.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}},"created_at":"2023-03-01T16:20:11.000Z","updated_at":"2023-03-01T16:22:11.000Z","dependencies_parsed_at":"2023-05-16T04:15:52.318Z","dependency_job_id":null,"html_url":"https://github.com/ttytm/haskell-async-requests-example","commit_stats":null,"previous_names":["ttytm/haskell-async-requests-example"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttytm%2Fhaskell-async-requests-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttytm%2Fhaskell-async-requests-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttytm%2Fhaskell-async-requests-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttytm%2Fhaskell-async-requests-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ttytm","download_url":"https://codeload.github.com/ttytm/haskell-async-requests-example/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246390864,"owners_count":20769478,"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":[],"created_at":"2024-10-24T13:44:55.399Z","updated_at":"2025-03-30T23:18:06.133Z","avatar_url":"https://github.com/ttytm.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Haskell-async-requests-example\n\nExample in haskell that focuses on concurrent async requests.\n\n## Test runs\n\n```\n--------------------------------------------------------------------------------\n1: Time 5.78s. Sent: 100. Successes: 94. Errors: 0. Timeouts: 6. Transferred: 25.21 (4.36 MB/s)\n2: Time 5.11s. Sent: 100. Successes: 94. Errors: 0. Timeouts: 6. Transferred: 25.23 (4.94 MB/s)\n3: Time 5.15s. Sent: 100. Successes: 94. Errors: 0. Timeouts: 6. Transferred: 25.20 (4.90 MB/s)\n4: Time 5.10s. Sent: 100. Successes: 94. Errors: 0. Timeouts: 6. Transferred: 25.20 (4.94 MB/s)\n5: Time 5.11s. Sent: 100. Successes: 94. Errors: 0. Timeouts: 6. Transferred: 25.10 (4.91 MB/s)\n6: Time 5.12s. Sent: 100. Successes: 94. Errors: 0. Timeouts: 6. Transferred: 24.78 (4.84 MB/s)\n7: Time 5.18s. Sent: 100. Successes: 94. Errors: 0. Timeouts: 6. Transferred: 25.22 (4.87 MB/s)\n8: Time 5.09s. Sent: 100. Successes: 94. Errors: 0. Timeouts: 6. Transferred: 25.11 (4.93 MB/s)\n9: Time 5.14s. Sent: 100. Successes: 94. Errors: 0. Timeouts: 6. Transferred: 25.39 (4.94 MB/s)\n10: Time 5.11s. Sent: 100. Successes: 94. Errors: 0. Timeouts: 6. Transferred: 25.14 (4.92 MB/s)\n--------------------------------------------------------------------------------\nRuns: 10. Average Time: 5.19s. Total Errors: 0. Total Timeouts: 60. Transferred: 251.58 MB (4.85 MB/s).\n--------------------------------------------------------------------------------\n```\n\n---\n\nSingle source requests (for simplicity `google.com/search?q=\u003c1..100\u003e`)\n\n```\nRuns: 10. Average Time: 1.31s. Total Errors: 0. Total Timeouts: 0. Transferred: 106.26 MB (7.95 MB/s).\n```\n\n---\n\nSupplementary information:\n\n- The requests were sent from Germany\n- The timeout was set to 5s as using 10s would result in the same number of timeouts per run\n  - Context: In current state of the related Nim example, setting a timeout below 10s significantly increases the number of timeouts\n\n## Equivalents in other languages\n\n- Nim: https://github.com/tobealive/nim-async-requests-example\n- Python: https://github.com/tobealive/python-async-requests-example\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fttytm%2Fhaskell-async-requests-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fttytm%2Fhaskell-async-requests-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fttytm%2Fhaskell-async-requests-example/lists"}