Code Monkey home page Code Monkey logo

biri's Introduction

biri

A unique client ID generator for browser applications

Introduction

biri gives you a unique ID for a browser application. The ID is generated per computer, and doesn't change unless the MAC address of the computer changes. For the web applications that have to use client-side ID generation and that struggle with private browser windows and clearing application storage, biri offers a unique solution and gives you a static ID per computer.

The primary use of biri is applications built for anonymous users where one wants to ensure the uniqueness of a user. Traditionally, backends rely on IP addresses and similar techniques, however this proves challenging for users within the same network.

biri distinguishes anonymous users and returns a unique ID for each user.

Licensing

biri is dual licensed. The default license is GPL and the usage details are outlined in LICENSE.

If you are a commercial entity, you can purchase a non-GPL license which will give you rights to use it commercially without sharing source code. Please contact the authors for licensing details.

Browser support

Supported

  • Google Chrome +80
  • Safari
  • Microsoft Edge

Not supported (yet)

  • Firefox
  • Opera
  • PWA (it won't work offline as it needs to have a network connection)

Installing

Using npm:

$ npm install biri

Using jsDelivr CDN:

<script src="https://cdn.jsdelivr.net/npm/biri/dist/biri.min.js"></script>

Using unpkg CDN:

<script src="https://unpkg.com/biri/dist/biri.min.js"></script>

Usage

In systems that use webpack or a similar bundler:

const biri = require('biri')

const uniqueId = await biri() // the returned ID will be unique per computer

In the browser:

<script src="https://unpkg.com/biri/dist/biri.js"></script>

<script>
  const uniqueId = await biri() // the returned ID will be unique per computer
</script>

License

GNU GENERAL PUBLIC LICENSE Version 3

See LICENSE for details.

biri's People

Contributors

dashersw avatar furkanilgenci avatar zack-heisnberg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

biri's Issues

Not works on safari anymore

Tested on Safari 14.1 (15611.1.21.161.5, 15611) MacOs Catalina and it does not works,
Chrome and opera are fine

No exports to be imported in SPAs?

I want to import Biri in a Vuejs project, however I don't think there is an export that can be imported as an ES6 module. How do I use it without having to resort to refer to the absolute node_modules path? Require does not work.

Commercial Use

Hi,

Regarding licensing, below information is provided online.

Licensing
biri is dual licensed. The default license is GPL and the usage details are outlined in LICENSE.

If you are a commercial entity, you can purchase a non-GPL license which will give you rights to use it commercially without sharing source code. Please contact the authors for licensing details.

Is it mandatory to purchase license for using biri package in a commercial product where we would like to get the unique user ID of the system? If Yes, how to connect with the team?

ID used on multiple devices

We have been using biri on our website to assign an ID to a user before they contact our API to determine if they have accessed our service before.

We send the ID generated by biri (if it is supported in the client) to the API and it records the first usage of that ID with the user-agent supplied in the header.

We have found the same ID used by different devices - once from Chrome on a Samsung mobile, and then again on Safari on an iPhone. From what I understand of biri, the ID is unique to the device and this should not happen.

Am I misunderstanding something?

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.