summaryrefslogtreecommitdiffhomepage
path: root/examples/rust (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2023-10-19unit-wasm 0.3.0v0.3.0Andrew Clayton4-5/+5
Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
2023-10-17examples/rust: Do some simplification around unsafe {} blocksAndrew Clayton3-26/+18
We can put the unsafe keyword as part of the function definition, getting rid of the unsafe {} blocks in the functions themselves. Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
2023-10-17examples/rust: Further simplify hello-worldAndrew Clayton1-4/+0
In this example we don't need the request buf. Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
2023-09-25examples: Add C and Rust examples of handling large uploadsAndrew Clayton3-1/+85
The programs demonstrate handling requests with payloads larger than 4GiB which means they need to be written out to disk and so also demonstrates the use of the file-system access mechanism. Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
2023-09-25examples/rust: Amend upload-reflector for recent changesAndrew Clayton1-1/+2
The previous commit changed uwr_get_http_content_len() to return a u64 to allow for uploads larger than 4GiB, which now means this generates compiler errors about type mismatches, expected usize got u64. Cast the return value of uwr_get_http_content_len() to usize to match that of TOTAL_RESPONSE_SENT. (Making TOTAL_RESPONSE_SENT a u64 creates a larger trail of problems). Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
2023-09-05examples/rust: Slightly simplify hello-worldAndrew Clayton1-4/+3
There is no need in this case to declare REQUEST_BUF as a global variable. Declaring it local to uwr_request_handler() lets us get rid of the unsafe code blocks. Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
2023-08-30unit-wasm 0.2.0v0.2.0Andrew Clayton3-3/+3
Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
2023-08-30examples/rust: Update for new API additionsAndrew Clayton2-7/+3
Update the echo-request and upload-reflector examples for the new uwr_http_add_header_content_type() and uwr_http_add_header_content_len() functions. Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
2023-08-29examples/rust: Reduce the scope of an unsafe block in echo-requestAndrew Clayton1-3/+1
Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
2023-08-29examples/rust: Fix building of the hello world demoAndrew Clayton1-2/+2
When I renamed it from minimal to hello-world, it stopped being built due to the make target name being the same as the directory name (hello-world). Rename the make target to rust-hello-world which also matches the naming of the rest of the targets. Fixes: 656c036 ("examples/rust: Add a minimal hello world rust example") Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
2023-08-29examples/rust: Add a minimal hello world rust exampleAndrew Clayton3-3/+60
This is about the smallest it can be. Its Unit application config would look like "applications": { "rust-hello-world": { "type": "wasm", "module": "/path/to/unit-wasm/examples/rust/hello-world/target/wasm32-wasi/debug/rust_hello_world.wasm", "request_handler": "uwr_request_handler", "malloc_handler": "luw_malloc_handler", "free_handler": "luw_free_handler" } } Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
2023-08-28examples/rust: Update unit-wasm dependency versionAndrew Clayton2-2/+2
luw_http_add_header() no longer takes an idx argument. Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
2023-08-28libunit-wasm: Remove the idx argument from luw_http_add_header()Andrew Clayton2-4/+2
This was used to specify the index of the response header being added, starting at 0 and incrementing by one for each header. Instead of having the programmer specify this, track it internally. We add an extra check in luw_http_add_header() to make sure we aren't trying to add more headers than we said with luw_http_init_headers(), if we are, simply return. This updates the API-C.md and the various examples and 'rusty' API wrapper. Suggested-by: Liam Crilly <liam@nginx.com> Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
2023-08-28Revert "Adding echo Request with body Parsing"Andrew Clayton3-203/+0
This reverts commit 011c3ba3f7bc466a04101f81d4f6186001b7aad4. This was committed in error... Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
2023-08-28Adding echo Request with body ParsingTimo Stark3-0/+203
2023-08-26examples/rust: Update unit-wasm dependency versionAndrew Clayton2-2/+2
This is for the new 'rusty' API. Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
2023-08-26examples/rust: Bump the versionsAndrew Clayton2-2/+2
Seeing as these are now using the 'rusty' API bump their versions to 0.2.0 Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
2023-08-25Rust: Port the Rust Wasm demos to the new 'rusty' wrappersAndrew Clayton2-239/+137
rusty is a thin wrapper over the generated libunit-wasm bindings to provide a more native rust like interface. This gets rid of all the casting and ugly string handling. It massively reduces the amount of unsafe {} blocks needed, though some still are... All in all this provides a nice code cleanup. Signed-off-by: Andrew Clayton <a.clayton@nginx.com>