CoAP runtime that is heap allocation and operating-system optional
Go to file
2023-05-21 20:09:44 -05:00
.github/workflows fix: testing 2023-05-21 20:09:44 -05:00
.utils chore: replace standard version with release-please 2023-01-25 12:14:15 -07:00
static docs: update readme 2023-01-31 17:47:18 -07:00
toad fix: testing 2023-05-21 20:09:44 -05:00
toad-array chore: release-please action should run on gitea actions (#350) 2023-05-21 05:48:55 +00:00
toad-common chore: release-please action should run on gitea actions (#350) 2023-05-21 05:48:55 +00:00
toad-cursor chore: release-please action should run on gitea actions (#350) 2023-05-21 05:48:55 +00:00
toad-hash chore: release-please action should run on gitea actions (#350) 2023-05-21 05:48:55 +00:00
toad-jni chore: release-please action should run on gitea actions (#350) 2023-05-21 05:48:55 +00:00
toad-len chore: release-please action should run on gitea actions (#350) 2023-05-21 05:48:55 +00:00
toad-macros chore: release-please action should run on gitea actions (#350) 2023-05-21 05:48:55 +00:00
toad-map chore: release-please action should run on gitea actions (#350) 2023-05-21 05:48:55 +00:00
toad-msg chore: release-please action should run on gitea actions (#350) 2023-05-21 05:48:55 +00:00
toad-stem chore: release-please action should run on gitea actions (#350) 2023-05-21 05:48:55 +00:00
toad-string chore: release-please action should run on gitea actions (#350) 2023-05-21 05:48:55 +00:00
toad-writable chore: release-please action should run on gitea actions (#350) 2023-05-21 05:48:55 +00:00
tpl feat(map): initial commit (#246) 2023-03-08 14:47:07 -07:00
.gitignore chore: replace standard version with release-please 2023-01-25 12:14:15 -07:00
.release-please-manifest.json chore: release main (#348) 2023-05-11 14:26:21 -05:00
.releaserc.json fix: testing 2023-05-21 20:09:44 -05:00
.tool-versions fix: testing 2023-05-21 20:09:44 -05:00
Cargo.lock fix: testing 2023-05-21 20:09:44 -05:00
Cargo.toml feat!: rename kwap -> toad (#139) 2022-10-08 10:49:09 -07:00
Makefile.toml chore: hush ci logs 2023-03-12 14:28:15 -07:00
package-lock.json fix: testing 2023-05-21 20:09:44 -05:00
package.json chore: release-please action should run on gitea actions (#350) 2023-05-21 05:48:55 +00:00
README.md Update README.md 2023-01-31 17:48:09 -07:00
release-please-config.json feat: initial commit on toad-jni (#279) 2023-04-02 15:37:16 -07:00
rustfmt.toml feat(toad)!: rewrite server, client, platform, core abstractions (#197) 2023-01-30 18:57:15 -07:00

A CoAP implementation that strives to power client- and server-side CoAP in any language & any environment.

CoAP?

CoAP is an application-level network protocol that copies the semantics of HTTP to an environment conducive to constrained devices. (weak hardware, small battery capacity, etc.)

This means that you can write and run two-way RESTful communication between devices very similarly to the networking semantics you are most likely very familiar with.

CoAP vs HTTP

CoAP provides a high performance + low latency alternative to HTTP that uses much of the same terminology and semantics.

In CoAP, you'll find familiar things like verbs (GET, POST, PUT, DELETE), headers (aka. Options) and status code (4.04 NOT FOUND) but you also have access to some extra levers that let you customize behavior of requests and responses, such as "I don't need to know that you received this message."

The library

Contributing

  • There are examples provided in each library that demo some high (or low) level use-cases that this library aims to cover
  • The issues are a good place to start if you're interested in contributing directly. At this stage, the project issues are a living backlog of work-to-be-done before stabilizing and promoting the repo.
  • You (contributor) should just make sure tests pass (cargo make test). I'll get the other CI steps to pass to make your contribution experience painless.
  • TODO: document architecture at a high level

Setup

  • install the rust language
  • clone this repo git clone git@github.com:toad-lib/toad
  • install cargo-make cargo install cargo-make
  • try running an example cd toad; cargo run --example server

How we define success

  • toad is significantly faster and lower latency than comparable HTTP libraries
  • toad answers questions like "what is coap?" and "why should i care?"
  • toad has frontends available in major ecosystems (Android, iOS, Node)
  • toad is fully usable on constrained bare metal devices in both server & client roles