{"id":15645525,"url":"https://github.com/seunlanlege/arc-reactor","last_synced_at":"2025-08-21T15:31:51.733Z","repository":{"id":24797295,"uuid":"102470636","full_name":"seunlanlege/arc-reactor","owner":"seunlanlege","description":"A web framework for rust.","archived":false,"fork":false,"pushed_at":"2023-06-14T16:06:59.000Z","size":861,"stargazers_count":54,"open_issues_count":11,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-12-08T03:51:50.453Z","etag":null,"topics":["rust","web-framework"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/seunlanlege.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-05T11:00:21.000Z","updated_at":"2024-10-14T09:41:32.000Z","dependencies_parsed_at":"2024-10-03T12:10:50.776Z","dependency_job_id":"3cc96833-fce6-491e-989a-7b1b29df11fa","html_url":"https://github.com/seunlanlege/arc-reactor","commit_stats":{"total_commits":169,"total_committers":5,"mean_commits":33.8,"dds":"0.18343195266272194","last_synced_commit":"1dac422582bda87ee6bbf2245f4e14dcf3737cb2"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seunlanlege%2Farc-reactor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seunlanlege%2Farc-reactor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seunlanlege%2Farc-reactor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seunlanlege%2Farc-reactor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/seunlanlege","download_url":"https://codeload.github.com/seunlanlege/arc-reactor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230520390,"owners_count":18238948,"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":["rust","web-framework"],"created_at":"2024-10-03T12:08:27.849Z","updated_at":"2024-12-20T01:15:01.155Z","avatar_url":"https://github.com/seunlanlege.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Arc-reactor\n\n![Arc Reactor](https://preview.ibb.co/dFjdxH/Arc_reactor.png \"Arc-Reactor: Asynchronous, Extensible, Micro web framework for Rust.\")\n\u003cbr/\u003e\u003cbr/\u003e\nAn **Asynchronous**, **Extensible**, **Micro** web framework for Rust.\n\n![Crates.io](https://img.shields.io/crates/d/arc-reactor.svg) [![Released API docs](https://docs.rs/arc-reactor/badge.svg)](https://docs.rs/arc-reactor)\n\n## Features\n\n- **Asynchronous**. In arc reactor, Service Handlers are asynchronous by default.\n\n- **Integration With futures-await**. The `#[service]` proc_macro not only derives the `ArcService` trait for your route handler, but also marks it as `#[async]` so you can await on futures in your route handlers with no extra stress.\n\n- **Intuitive Middleware System**. arc reactor exposes a middleware system that is easy to reason about. Have a look at the [design spec](./DESIGN.md)\n\n- **Minimalistic**. arc reactor is designed to be a very thin abstraction over tokio and hyper.\n\n- **TLS Support**. easy to add tls support.\n\n- **Opt-in to Nightly**. arc reactor uses a lot of cool features, including `proc_macros` which are only available on the nightly channel, using the `unstable` feature flag.\n\n## Installation\n\nAdd this to your `cargo.toml`\n\n```toml\narc-reactor = \"0.2\"\n```\n\n## Hello World (default)\n\n![Default](./stable.png)\n\n## Demo (unstable)\n\n![Default](./unstable.png)\n\n## Nightly Use\n\nOriginally, arc-reactor was designed for the nightly compiler.\nBut instabilities in `libprocmacro` cause it to break everytime a new nightly compiler is released.\n\nSo by default, arc-reactor no longer uses the nightly compiler, and will work out of the box with the stable compiler. 🎉\nThis means experimental nightly features including proc_macros are only available behind the `unstable` feature flag.\n\nIf you wish to use arc-reactor, with the nightly compiler and unstable feature enabled:\nIt is recommended that you lock down the compiler version. Until `libprocmacro` is stablized.\n\nIf you wish to use arc-reactor with it's default features:\n\n- The trait `ArcService` is implemented for all functions that satisfy the signature `Fn(Request, Response) -\u003e FutureResponse`\n- The trait `MiddleWare\u003cRequest\u003e` is implemented for all functions that satisfy the signature `Fn(Request) -\u003e MiddleWareFuture\u003cRequest\u003e`\n- The trait `MiddleWare\u003cResponse\u003e` is implemented for all functions that satisfy the signature `Fn(Response) -\u003e MiddleWareFuture\u003cResponse\u003e`\n- `futures` from `futures-rs` is re-exported instead of `futures-await`.\n- you lose the ability to `await!` on futures in your ServiceHandlers and MiddleWares.\n- Currently, Multipart support is implemented using unstable features, so you would have to implement your own.\n\n## Examples\n\nCheck out the examples folder and the [api documentation](https://docs.rs/arc-reactor/~0.1) to get a feel for how `arc reactor` works.\n\u003cbr\u003e\nIt's well documented and should get you up and running in no time.\n\n## Design\n\nIt is Strongly recommended that you read the [design](./DESIGN.md) document, as it gives you full disclosure on arc-reactor's internals,\nas well as the design decisions that were made.\n\n## Contributions\n\nArc-Reactor is highly extensible via middlewares which are placed in the `contrib` module.\n\nSome of the things are missing include:\n\n- [ ] Logger\n- [ ] Websocket\n- [ ] Support byte range headers\n- [x] Asynchronous StaticFileServer\n- [x] Json body parser\n- [x] Multipart Support\n\nFeel free to submit a PR.\n\n## License\n\nRefer to [License](https://github.com/SeunLanLege/arc-reactor/blob/master/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseunlanlege%2Farc-reactor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseunlanlege%2Farc-reactor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseunlanlege%2Farc-reactor/lists"}