| Crates.io | cargo-server |
| lib.rs | cargo-server |
| version | 0.3.6 |
| created_at | 2022-09-28 19:36:15.748607+00 |
| updated_at | 2023-11-12 00:02:47.071644+00 |
| description | Helps you serve a static site, single page application or just a static file |
| homepage | |
| repository | https://github.com/raphamorim/cargo-server |
| max_upload_size | |
| id | 676006 |
| size | 2,070,124 |
tl;dr: Does the same as "python -m http.server" or "npx serve" but for Rust ecosystem and with few more functionalities.
cargo-server helps you serve a static site, single page application or just a static file (no matter if on your device or on the local network). It also provides a neat interface for listing the directory's contents.
You can use cargo to install:
cargo install cargo-server
With cargo-binstall:
cargo binstall cargo-server
Once cargo-server is installed, you can run this command inside your project's directory. It will create by default in 8000 port:
cargo server
To specify the port, you can use --port:
cargo server --port 3000
To open in your browser after run the command just add --open:
cargo server --open
You can also set a custom path using --path:
cargo server --path ./examples/simple-wasm-frontend-app
Result:

Is also possible to run without any stdout using --quiet:
cargo server --quiet --open --path ./examples/simple-wasm-frontend-app
You can create custom routes that returns JSON
--json with paramscargo server \
--route '/users/:userId' \
--json '{"data":{"userId":"{!0}","givenName":"Raphael","country":"br"}}' \
--port 8123
Result:

--json without paramscargo server \
--route '/users' \
--json '{"users":[{"data":{"userId":"3","givenName":"Raphael","country":"br"}}]}' \
--port 8123
Result:

--all-routesIt will add support for GET, POST, DELETE and PATCH methods as well.
cargo server \
--all-routes \
--json '{"id": "1"}' \
--port 8123
Result:

In progress...