Coder Social home page Coder Social logo

gbuesing / uribeacon Goto Github PK

View Code? Open in Web Editor NEW

This project forked from google/uribeacon

0.0 1.0 0.0 1.84 MB

The Web Uri Open Beacon for the Internet of Things

License: Apache License 2.0

CSS 4.65% Java 73.81% Arduino 0.22% Shell 1.37% JavaScript 0.43% Objective-C 19.52%

uribeacon's Introduction

Welcome to the UriBeacon
Open Source Project

Build Status

The Web Uri Open Beacon specification for the Internet of Things

(pronounced YUR-ee-BEE-kun)

Check out how UriBeacons are used in the Physical Web project.

Disclaimer

This is not an official Google product. This is an early-stage experiment that we are developing in the open as we do all things related to the web. This should only be of interest to developers looking to provide feedback and contribute.

Why We Created the UriBeacon Specification

The UriBeacon Specification is designed with one goal in mind: to create the easiest, most open way to discover and use nearby smart things.

UriBeacon is a wireless advertisement format for broadcasting Uris to any nearby smart device. By leveraging the Open Web it enables a real-World Wide Web where every person, place and thing can have its own Web presence. Our design is:

  1. Compliant with Bluetooth 4.0 Advertising messages.
  2. Compatable with iOS and Android low power scanning modes.
  3. Independent of any particular hardware, user-agent, service or mobile platform.
  4. Openly licensed under Apache 2.0 and as such free of restrictive and proprietary terms.

In short, UriBeacon connects low power beacons to the family of Open Web technologies and is one step towards making the Internet of Things as easy to use as the World Wide Web.

Contents

This repository contains the UriBeacon written specification and sample code for advertisers and scanners:

We will also be providing instructions on how to assemble and program standalone UriBeacon tags.

What is a Uri?

One can classify URIs as Locators (URLs), or Names (URNs), or both.

A Name functions like a person’s name (or Government ID number), while a Locator resembles that person’s postal address.

In other words: URN is an item’s identity, while the URL is a method for finding it.

  • urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6 RFC4122
  • https://www.ietf.org/rfc/rfc2141.txt RFC1738

UriBeacons can broadcast familiar HTTP URLs (http and https), UUID URNs (128-bit universally unique identifiers) as well as other URIs.

UriBeacon Devices and Tags

Various things may broadcast UriBeacons. Smart devices such as phones, tablets, laptops, vending machines, irrigation controllers may incorporate built in UriBeacons. Other things such as movie posters, bus stops, and meeting rooms may use small hardware devices, or tags, specifically designed to emit a UriBeacon advertisement. The libraries and sample code in this repository are a resource for developers who want to encorporate UriBeacons in existing devices and also to create standalone UriBeacon tags.

Short Urls

In order to allow arbitrary sized Urls in short messages the specification finds inspiration from Twitter where all Url links posted in Tweets are auto-shortened. Similarly the UriBeacon contains either a naturally short Uri or one that is shortened through a third-party service. The actual Uri shortener service used is up to the tag writer.

UriBeacon also uses an encoding that replaces common strings like https:// with a single byte code. The result are Uris that can fit within the limited size of ADV_NONCONN_IND packets as shown in the table below:

Service Example Length Encoded Length
goo.gl http://goo.gl/lNhc7 19 13
bit.ly http://bit.ly/a99vaw 20 14
is.gd http://is.gd/EstPIk 19 13
t.co http://t.co/LEGhQ4i0 20 14

Table 1: Sampling of Url Shorteners

Note that short Urls are mostly transparent: user agents can hide short and show long URLs, titles, etc. and configuration tools can automatically shorten long Urls when writing beacons. Also this specification does not preclude additional information exchange over a GATT service following discovery.

uribeacon's People

Contributors

schilit avatar zauguin avatar matthewsibigtroth avatar don avatar dinhvh avatar roywant avatar sandeepmistry avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.