- Notifications
You must be signed in to change notification settings - Fork56
A Constrained Application Protocol(CoAP) library implemented in Rust.
License
NotificationsYou must be signed in to change notification settings
Covertness/coap-rs
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A fast and stableConstrained Application Protocol(CoAP) library implemented in Rust.
Features:
- CoAP core protocolRFC 7252
- CoAP Observe optionRFC 7641
- Too Many Requests Response CodeRFC 8516
- Block-Wise TransfersRFC 7959
- DTLS support viawebrtc-rs
- Option to provide custom transports for client and server
First add this to yourCargo.toml
:
[dependencies]coap ="0.22"coap-lite ="0.13.3"tokio = {version ="^1.32",features = ["full"]}
use coap_lite::{RequestTypeasMethod,CoapRequest};use coap::Server;use tokio::runtime::Runtime;use std::net::SocketAddr;fnmain(){let addr ="127.0.0.1:5683";Runtime::new().unwrap().block_on(asyncmove{letmut server =Server::new_udp(addr).unwrap();println!("Server up on {}", addr); server.run(|mutrequest:Box<CoapRequest<SocketAddr>>|async{match request.get_method(){&Method::Get =>println!("request by get {}", request.get_path()),&Method::Post =>println!("request by post {}",String::from_utf8(request.message.payload.clone()).unwrap()),&Method::Put =>println!("request by put {}",String::from_utf8(request.message.payload.clone()).unwrap()), _ =>println!("request by other method"),};match request.response{Some(refmut message) =>{ message.message.payload =b"OK".to_vec();}, _ =>{}};return request}).await.unwrap();});}
use coap_lite::{RequestTypeasMethod,CoapRequest};use coap::{UdpCoAPClient};use tokio::main;#[tokio::main]asyncfnmain(){let url ="coap://127.0.0.1:5683/Rust";println!("Client request: {}", url);let response =UdpCoAPClient::get(url).await.unwrap();println!("Server reply: {}",String::from_utf8(response.message.payload).unwrap());}
$ cargo bench
About
A Constrained Application Protocol(CoAP) library implemented in Rust.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
No packages published
Uh oh!
There was an error while loading.Please reload this page.