{"id":13481894,"url":"https://github.com/monix/monix","last_synced_at":"2025-05-14T11:12:33.878Z","repository":{"id":12994946,"uuid":"15673987","full_name":"monix/monix","owner":"monix","description":"Asynchronous, Reactive Programming for Scala and Scala.js.","archived":false,"fork":false,"pushed_at":"2024-08-12T23:48:38.000Z","size":17629,"stargazers_count":1934,"open_issues_count":144,"forks_count":245,"subscribers_count":58,"default_branch":"series/4.x","last_synced_at":"2025-05-10T13:54:32.815Z","etag":null,"topics":["cats","cats-effect","fp","functional-programming","monix","reactive-programming","reactive-streams","reactivex","scala","typelevel"],"latest_commit_sha":null,"homepage":"https://monix.io","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/monix.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null},"funding":{"patreon":"alexelcu"}},"created_at":"2014-01-06T12:56:07.000Z","updated_at":"2025-04-11T21:00:14.000Z","dependencies_parsed_at":"2023-12-28T22:36:34.507Z","dependency_job_id":"c47b6fd5-5fdc-479a-ab31-589f04d3a64c","html_url":"https://github.com/monix/monix","commit_stats":{"total_commits":1636,"total_committers":112,"mean_commits":"14.607142857142858","dds":0.4523227383863081,"last_synced_commit":"2faa2cf7425ab0b88ea57b1ea193bce16613f42a"},"previous_names":["monixio/monix","alexandru/monifu","monifu/monifu"],"tags_count":104,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monix%2Fmonix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monix%2Fmonix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monix%2Fmonix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monix%2Fmonix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/monix","download_url":"https://codeload.github.com/monix/monix/tar.gz/refs/heads/series/4.x","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254129525,"owners_count":22019628,"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":["cats","cats-effect","fp","functional-programming","monix","reactive-programming","reactive-streams","reactivex","scala","typelevel"],"created_at":"2024-07-31T17:00:57.227Z","updated_at":"2025-05-14T11:12:28.866Z","avatar_url":"https://github.com/monix.png","language":"Scala","readme":"# Monix\n\n\u003cimg src=\"https://monix.io/public/images/monix-logo.png?ts=20161024\" align=\"right\" width=\"280\" /\u003e\n\nAsynchronous, Reactive Programming for Scala and [Scala.js](http://www.scala-js.org/).\n\n[![monix Scala version support](https://index.scala-lang.org/monix/monix/monix/latest-by-scala-version.svg)](https://index.scala-lang.org/monix/monix/monix)\n\n[![Build](https://github.com/monix/monix/workflows/build/badge.svg?branch=series/4.x)](https://github.com/monix/monix/actions?query=branch%3Aseries%2F4.x+workflow%3Abuild) [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/monix/monix)\n[![Discord](https://img.shields.io/discord/632277896739946517.svg?label=\u0026logo=discord\u0026logoColor=ffffff\u0026color=404244\u0026labelColor=6A7EC2)](https://discord.gg/wsVZSEx4Nw)\n\n- [Overview](#overview)\n- [Usage](#usage)\n  - [Library dependency (sbt)](#library-dependency-sbt)\n  - [Sub-projects](#sub-projects)\n- [Documentation](#documentation)\n- [Contributing](#contributing)\n- [Adopters](#adopters)\n- [License](#license)\n\n## Overview\n\nMonix is a high-performance Scala / Scala.js library for composing asynchronous,\nevent-based programs.\n\nIt started as a proper implementation of [ReactiveX](http://reactivex.io/),\nwith stronger functional programming influences and designed from the ground up\nfor  back-pressure and made to interact cleanly with Scala's standard library,\ncompatible out-of-the-box with the [Reactive Streams](http://www.reactive-streams.org/)\nprotocol. It then expanded to include abstractions for suspending side effects\nand for resource handling, and is one of the parents and implementors of\n[Cats Effect](https://typelevel.org/cats-effect/).\n\n\u003ca href=\"https://typelevel.org/\"\u003e\u003cimg src=\"https://monix.io/public/images/typelevel.png\" width=\"150\" style=\"float:right;\" align=\"right\" /\u003e\u003c/a\u003e\n\nA [Typelevel project](http://typelevel.org/projects/), Monix proudly\nexemplifies pure, typeful, functional programming in Scala, while being pragmatic,\nand making no compromise on performance.\n\nHighlights:\n\n- exposes the kick-ass [Observable](https://monix.io/docs/current/reactive/observable.html), \n  [Iterant](https://monix.io/api/current/monix/tail/Iterant.html), \n  [Task](https://monix.io/docs/current/eval/task.html),\n  [IO[E, A]](https://bio.monix.io/docs/introduction), and \n  [Coeval](https://monix.io/docs/current/eval/coeval.html) data types,\n  along with all the support they need\n- *modular*, split into multiple sub-projects, only use what you need\n- designed for true asynchronicity, running on both the\n  JVM and [Scala.js](http://scala-js.org)\n- excellent test coverage, code quality, and API documentation\n  as a primary project policy\n\n## Usage\n\n- Use **[monix-jvm-app-template.g8](https://github.com/monix/monix-jvm-app-template.g8)**\nfor quickly getting started with a Monix-driven app\n- See **[monix-sample](https://github.com/monix/monix-sample)** for\na project exemplifying Monix used both on the server and on the client.\n\n### Library dependency (sbt)\n\nFor the stable release (compatible with Cats, and Cats-Effect 2.x):\n \n```scala\nlibraryDependencies += \"io.monix\" %% \"monix\" % \"3.4.1\"\n```\n  \n### Sub-projects\n\nMonix 3.x is modular by design. See the [sub-modules graph](https://monix.io/docs/current/intro/usage.html#sub-modules--dependencies-graph):\n\n\u003cimg src=\"https://monix.io/public/misc/dependencies.svg\"\n  alt=\"Sub-modules graph\" /\u003e\n\nYou can pick and choose:\n\n- `monix-execution` exposes the low-level execution environment, or\n  more precisely `Scheduler`, `Cancelable`, `Atomic`, `Local`, `CancelableFuture`\n  and `Future` based abstractions from `monix-catnap`.\n- `monix-catnap` exposes pure abstractions built on top of\n   the [Cats-Effect](https://typelevel.org/cats-effect/) type classes;\n   depends on `monix-execution`, Cats 1.x and Cats-Effect\n- `monix-eval` exposes `Task`, `Coeval`;\n  depends on `monix-execution`\n- `monix-reactive` exposes `Observable` for modeling reactive,\n  push-based streams with back-pressure; depends on `monix-eval`\n- `monix-tail` exposes `Iterant` streams for purely functional pull\n  based streaming; depends on `monix-eval` and makes heavy use of\n  Cats-Effect\n- `monix` provides all of the above\n\n## Documentation\n\nSee:\n\n- Website: [Monix.io](https://monix.io/)\n- [Documentation (current)](https://monix.io/docs/current/) ([3.x](https://monix.io/docs/3x/))\n- [Documentation for 2.x (old)](https://monix.io/docs/2x/)\n- [Presentations](https://monix.io/presentations/)\n\nAPI Documentation:\n\n- [Current](https://monix.io/api/current/) \n- [3.4](https://monix.io/api/3.4/)\n- [2.3](https://monix.io/api/2.3/)\n- [1.2](https://monix.io/api/1.2/)\n\n([contributions are welcome](https://github.com/monix/monix.io))\n\nRelated:\n\n- [Typelevel Cats](https://typelevel.org/cats/)\n- [Typelevel Cats-Effect](https://typelevel.org/cats-effect/)\n\n## Contributing\n\nThe Monix project welcomes contributions from anybody wishing to\nparticipate. You must license all code or documentation provided \nwith the Apache License 2.0, see [LICENSE.txt](./LICENSE.txt).\n\nYou must follow the [Scala Code of Conduct](./CODE_OF_CONDUCT.md) when\ndiscussing Monix on GitHub, Gitter channel, or other venues.\n\nFeel free to open an issue if you notice a bug, have an idea for a\nfeature, or have a question about the code. Pull requests are also\ngladly accepted. For more information, check out the\n[contributor guide](CONTRIBUTING.md).\n\nIf you'd like to donate in order to help with ongoing maintenance:\n\n\u003ca href=\"https://www.patreon.com/bePatron?u=6102596\"\u003e\u003cimg label=\"Become a Patron!\" src=\"https://c5.patreon.com/external/logo/become_a_patron_button@2x.png\" height=\"40\" /\u003e\u003c/a\u003e\n\n## Adopters\n\nHere's a (non-exhaustive) list of companies that use Monix in production. Don't see yours? \nSubmit a PR ❤️ \n- [PITS Global Data Recovery Services](https://www.pitsdatarecovery.net/)\n- [Abacus](https://abacusfi.com)\n- [Agoda](https://www.agoda.com)\n- [AVSystem](https://www.avsystem.com)\n- [commercetools](https://commercetools.com)\n- [Coya](https://www.coya.com/)\n- [DigitalGenius](https://digitalgenius.com/)\n- [E.ON Connecting Energies](https://www.eon.com/)\n- [eBay Inc.](https://www.ebay.com)\n- [Eloquentix](http://eloquentix.com/)\n- [Hypefactors](https://www.hypefactors.com)\n- [Iterators](https://www.iteratorshq.com)\n- [Netflix](https://netflix.com)\n- [Sony Electronics](https://www.sony.com)\n- [Tinkoff](https://tinkoff.ru)\n- [Zalando](https://www.zalando.com)\n- [Zendesk](https://www.zendesk.com)\n\n## License\n\nAll code in this repository is licensed under the Apache License,\nVersion 2.0.  See [LICENSE](./LICENSE.txt).\n","funding_links":["https://patreon.com/alexelcu","https://www.patreon.com/bePatron?u=6102596"],"categories":["Table of Contents","Scala","Functional Reactive Programming","并发编程"],"sub_categories":["Streaming Library","Functional Reactive Programming"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonix%2Fmonix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmonix%2Fmonix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonix%2Fmonix/lists"}