Project

coap

0.02
No commit activity in last 3 years
No release in over 3 years
Pure Ruby implementation of RFC 7252 (Constrained Application Protocol (CoAP)). The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine-to-machine (M2M) applications such as smart energy and building automation.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.6
~> 0.7
~> 1.4
~> 5.4
~> 10.3
~> 3.0

Runtime

 Project Readme

Gem Version Build Status Coverage Status Code Climate Docker Hub Build Status

CoAP

This Ruby gem implements client functionality for RFC 7252, the Constrained Application Protocol (CoAP). The message parsing code included is written by Carsten Bormann, one of the RFC authors.

The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as 6LoWPAN often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine-to-machine (M2M) applications such as smart energy and building automation.

Additionally supported extensions of the CoAP protocol:

Install

Add this line to your application's Gemfile:

gem 'coap'

And then execute:

$ bundle

Or install it yourself as:

$ gem install coap

Usage

In your Application

require 'coap'

CoAP::Client.new.get_by_uri('coap://coap.me/hello').payload
=> "world"

CoAP::Client.new.get('/hello', 'coap.me')
=> #<struct CoRE::CoAP::Message ver=1, tt=:ack, mcode=[2, 5], mid=51490, options={:max_age=>60, :token=>366862489, :content_format=>0}, payload="world">

c = CoAP::Client.new(host: 'coap.me')
c.get('/hello')

See the API documentation at rubydoc.info or test/test_client.rb for more examples.

On the Command Line

The command line client supports the basic CoAP methods.

coap get coap://coap.me/.well-known/core

With Docker

You can skip the install section if you want to use Docker.

docker run nning2/coap get coap://coap.me/hello

Testing

rake

Copyright

The code is published under the MIT license (see the LICENSE file).

Authors