{"id":13417893,"url":"https://github.com/actor-framework/actor-framework","last_synced_at":"2025-05-13T20:20:28.054Z","repository":{"id":1402710,"uuid":"1439738","full_name":"actor-framework/actor-framework","owner":"actor-framework","description":"An Open Source Implementation of the Actor Model in C++","archived":false,"fork":false,"pushed_at":"2025-04-28T08:24:54.000Z","size":43338,"stargazers_count":3267,"open_issues_count":62,"forks_count":554,"subscribers_count":177,"default_branch":"main","last_synced_at":"2025-04-28T11:55:05.112Z","etag":null,"topics":["actor-model","actors","async","caf","pattern-matching"],"latest_commit_sha":null,"homepage":"http://actor-framework.org/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"ryanb/populator","license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/actor-framework.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2011-03-04T14:59:50.000Z","updated_at":"2025-04-27T11:48:02.000Z","dependencies_parsed_at":"2023-09-27T23:58:52.890Z","dependency_job_id":"8ce9a909-e327-4f55-a985-b0f87000a156","html_url":"https://github.com/actor-framework/actor-framework","commit_stats":{"total_commits":6312,"total_committers":114,"mean_commits":55.36842105263158,"dds":0.5782636248415716,"last_synced_commit":"d9639b60d8b0b7de2cb7a701740d26b954933500"},"previous_names":[],"tags_count":96,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/actor-framework%2Factor-framework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/actor-framework%2Factor-framework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/actor-framework%2Factor-framework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/actor-framework%2Factor-framework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/actor-framework","download_url":"https://codeload.github.com/actor-framework/actor-framework/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251311332,"owners_count":21569008,"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":["actor-model","actors","async","caf","pattern-matching"],"created_at":"2024-07-30T22:00:54.889Z","updated_at":"2025-04-28T11:55:33.343Z","avatar_url":"https://github.com/actor-framework.png","language":"C++","readme":"[![Gitter][gitter-badge]](https://gitter.im/actor-framework/chat)\n[![Documentation Status][docs-badge]](http://actor-framework.readthedocs.io/en/latest/?badge=latest)\n[![Coverage][coverage-badge]](https://codecov.io/gh/actor-framework/actor-framework)\n\n# What is CAF?\n\nCAF is an open source framework that offers a programming environment based on\nthe [Actor Model](https://en.wikipedia.org/wiki/Actor_model) of computation\ncombined with a [scalable](https://dl.acm.org/doi/10.1145/2541329.2541336),\n[native](https://www.sciencedirect.com/science/article/abs/pii/S1477842416000038)\nruntime environment that lets you build applications at a high level of\nabstraction without sacrificing performance. Whether you are targeting a single\nmachine, a data center, or the cloud, CAF provides the necessary tools to\nimplement robust, scalable, and maintainable software.\n\nCAF features lightweight \u0026 fast actor implementations, data flows, HTTP and\nWebSocket support, pattern matching for messages, metrics, distributed actors,\nand more. Professional support, training, and consulting are available from\n[Interance](https://www.interance.io), the company behind CAF.\n\n## Online Resources\n\n* __Homepage__: https://www.actor-framework.org\n* __Guides and Tutorials__: https://www.interance.io/learning\n* __Manual__: https://actor-framework.readthedocs.io\n* __Doxygen__: https://www.actor-framework.org/doxygen\n* __Developer Blog__: https://www.actor-framework.org/blog\n\n## Report Bugs and Get Help\n\n* __Open Issues on GitHub__: https://github.com/actor-framework/actor-framework/issues/new\n* __Ask Questions on StackOverflow__: https://stackoverflow.com/questions/ask?tags=c%2b%2b-actor-framework\n\n## Community\n\n* __Chat__: https://gitter.im/actor-framework/chat\n* __Mastodon__: https://fosstodon.org/@caf\n* __Twitter__: https://twitter.com/actor_framework\n* __Mailing List__: https://groups.google.com/d/forum/actor-framework\n\n## Get CAF\n\nWe do not officially maintain packages for CAF. However, some of our community\nmembers made packages available for these package managers:\n\n- [Conan](https://conan.io/center/caf)\n- [FreeBSD Ports](https://svnweb.freebsd.org/ports/head/devel/caf)\n- [Homebrew](https://formulae.brew.sh/formula/caf).\n- [VCPKG](https://github.com/microsoft/vcpkg/tree/master/ports/caf)\n- [Fedora](https://src.fedoraproject.org/rpms/actor-framework)\n\n## Get the Sources\n\n```sh\ngit clone https://github.com/actor-framework/actor-framework.git\ncd actor-framework\n```\n\n## Build CAF from Source\n\nCAF uses [CMake](http://www.cmake.org) as its build system of choice. To make\nbuilding CAF more convenient from the command line, we provide a `configure`\nscript that wraps the CMake invocation. The script only works on UNIX systems.\nOn Windows, we recommend generating an MSVC project file via CMake for native\nbuilds.\n\n### Using the `configure` Script\n\nThe script is a convenient frontend for `CMake`. See `configure -h` for a list\nof available options. By default, the script creates a `build` directory and\nasks CMake to generate a `Makefile`. A build with default settings generally\nfollows these steps:\n\n```sh\n./configure\ncd build\nmake\nmake test [optional]\nmake install [as root, optional]\n```\n\n### Using CMake\n\nTo generate a Makefile for building CAF with default settings, either use a\nCMake GUI or perform this step on the command line:\n\n```sh\ncmake -S \u003cpath-to-caf-sources\u003e -B build\n```\n\nAfter this step, `cmake -LH` prints the most useful configuration options for\nCAF, their default value, and a helptext.\n\nOther CMake projects can add CAF as a dependency by using `find_package` and\nlisting the required modules (e.g., `core` or `net`) . When installing CAF to a\nnon-standard location, set `CAF_ROOT` prior to calling `find_package`.\n\n## Dependencies\n\n* CMake (for building CAF)\n* OpenSSL (when building the `openssl` or `net` module)\n\n## Supported Platforms\n\nC++ is an evolving language. Compiler vendors constantly add more language and\nstandard library features. Since CAF runs on many platforms, this means we need\na policy that on the one hand ensures that we only use a widely supported subset\nof C++ and on the other hand that we naturally progress with the shifting\nlandscape to eventually catch up to more recent C++ additions (in order to not\n\"get stuck\").\n\nSo instead of singling out individual compiler versions, we build CAF for each\ncommit on all platforms that we currently deem relevant. Everything that passes\nour CI is \"fair game\".\n\nOur CI covers Windows (latest MSVC release), macOS (latest Xcode release),\nFreeBSD (latest) and several Linux distributions (via the Docker images found\n[here](https://github.com/actor-framework/actor-framework/tree/main/.ci)). For\nLinux, we aim to support the current releases (that still receive active\nsupport) for the major distributions. Note that we do not build on Linux\ndistributions with rolling releases, because they generally provide more recent\nbuild tools than distributions with traditional release schedules and thus would\nonly add redundancy.\n\n## Build Documentation Locally\n\n- Building an offline version of the manual requires\n  [Sphinx](https://www.sphinx-doc.org):\n  ```sh\n  cd manual\n  sphinx-build . html\n  ```\n- Building an offline version of the API reference documentation requires\n  [Doxygen](http://www.doxygen.nl) (simply run the  `doxygen` command at the\n  root directory of the repository).\n\n## Scientific Use\n\nIf you use CAF in a scientific context, please use one of the following citations:\n\n```bibtex\n@inproceedings{cshw-nassp-13,\n  author = {Dominik Charousset and Thomas C. Schmidt and Raphael Hiesgen and Matthias W{\\\"a}hlisch},\n  title = {{Native Actors -- A Scalable Software Platform for Distributed, Heterogeneous Environments}},\n  booktitle = {Proc. of the 4rd ACM SIGPLAN Conference on Systems, Programming, and Applications (SPLASH '13), Workshop AGERE!},\n  pages = {87--96},\n  month = {Oct.},\n  year = {2013},\n  publisher = {ACM},\n  address = {New York, NY, USA}\n}\n\n@article{chs-rapc-16,\n  author = {Dominik Charousset and Raphael Hiesgen and Thomas C. Schmidt},\n  title = {{Revisiting Actor Programming in C++}},\n  journal = {Computer Languages, Systems \\\u0026 Structures},\n  volume = {45},\n  year = {2016},\n  month = {April},\n  pages = {105--131},\n  publisher = {Elsevier}\n}\n```\n\nYou can find the papers online at http://dx.doi.org/10.1145/2541329.2541336 and\nhttp://dx.doi.org/10.1016/j.cl.2016.01.002.\n\n[docs-badge]: https://readthedocs.org/projects/actor-framework/badge/?version=latest\n\n[gitter-badge]: https://img.shields.io/badge/gitter-join%20chat%20%E2%86%92-brightgreen.svg\n\n[coverage-badge]: https://codecov.io/gh/actor-framework/actor-framework/graph/badge.svg?token=SjJQQ5dCbV\n","funding_links":[],"categories":["TODO scan for Android support in followings","Asynchronous Event Loop","Frameworks, Libraries and Tools","Software","C++","Objects - Entity, Actor"],"sub_categories":["Application Frameworks","Trends","UI Test Automation Scripting"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Factor-framework%2Factor-framework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Factor-framework%2Factor-framework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Factor-framework%2Factor-framework/lists"}