{"id":17086416,"url":"https://github.com/dasch/minx","last_synced_at":"2025-04-12T21:41:33.795Z","repository":{"id":56883967,"uuid":"506694","full_name":"dasch/minx","owner":"dasch","description":"A library for creating massively concurrent applications in Ruby","archived":false,"fork":false,"pushed_at":"2012-10-29T09:29:17.000Z","size":236,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-04-27T01:02:18.596Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/dasch.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}},"created_at":"2010-02-07T17:51:33.000Z","updated_at":"2013-10-07T11:47:40.000Z","dependencies_parsed_at":"2022-08-20T13:10:43.934Z","dependency_job_id":null,"html_url":"https://github.com/dasch/minx","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dasch%2Fminx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dasch%2Fminx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dasch%2Fminx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dasch%2Fminx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dasch","download_url":"https://codeload.github.com/dasch/minx/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248637832,"owners_count":21137538,"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-14T13:28:35.360Z","updated_at":"2025-04-12T21:41:33.776Z","avatar_url":"https://github.com/dasch.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"Minx\n====\n\nMassive and pervasive concurrency with Minx!\n\nMinx uses the powerful concurrency primitives outlined by Tony Hoare in his\nfamous book \"Communicating Sequential Processes\". This library was written\nas part of [my bachelor thesis](http://cl.ly/2E2s471i122S3I1s3W30).\n\n\nUsage\n-----\n\nMinx lets you easily create concurrent programs using the notion of *processes*\nand *channels*.\n\n```ruby\n# Very contrived example...\nchan = Minx.channel\n\nMinx.spawn { chan.write(\"Hello, World!\") }\nMinx.spawn { puts chan.read }\n```\n\nThese primitives, although simple, are incredibly powerful when composing highly\nconcurrent applications. When reading from or writing to a channel, a process\nyields execution -- and thus blocks until another process also participates in\nthe communication. An example of when this would be useful is a simple network\nserver:\n\n```ruby\n# Create a channel for the incoming requests.\nrequests = Minx.channel\n\n# Spawn 10 workers.\n10.times do\n  Minx.spawn do\n    requests.each {|request| handle_request(request) }\n  end\nend\n```\n\nIn the near future, evented IO will be implemented, allowing for highly\nperformant network and file applications.\n\n\nDocumentation\n-------------\n\nSee [the full documentation](http://rubydoc.info/github/dasch/minx/master/frames).\n\n\nCopyright\n---------\n\nCopyright (c) 2010 Daniel Schierbeck (@dasch). See {file:LICENSE} for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdasch%2Fminx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdasch%2Fminx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdasch%2Fminx/lists"}