Giter VIP home page Giter VIP logo

bukubrow's Introduction

Bukubrow

Bukubrow is a WebExtension for Buku, a command-line bookmark manager. This WebExtension is developed to work in at least Firefox, Chromium, and Chrome, however any other browsers that support modern WebExtension standards should also be compatible.

It uses a native binary written in Rust to interface with your Buku database. Secure communication between the binary and the browser extension is handled via native messaging.

This project's foundation was heavily influenced by browserpass, a WebExtension designed to allow a similar kind of synchronicity between the browser and pass.

Prerequisites

  • Buku
  • If building the binary:
    • Cargo (Rust)
  • If building the WebExtension:
    • Node
    • Yarn

Installation

Installing the binary and registering it with your browser through the installation script is required to allow the browser extension to talk to Buku. If you move the binary you will have to re-register it.

Step 1 - Installing the binary

If you've downloaded a binary zip from the releases page, skip to step 3.

  1. Clone the repo.
  2. Run make binary-linux-x64 (Linux) or make binary-darwin-x64 (macOS). Note that you'll need your target platform installed and configured with Cargo. Your zip file will be located within the ./release/ directory.
  3. Move the zip file to a suitable location, for example ~/.bukubrow/.
  4. Extract the zip file.
  5. Run ./install.sh to install the native messaging host. If you want a system-wide installation, run the script with sudo.

Step 2 - Installing the WebExtension

Install the WebExtension from the relevant addon store.

Alternatively, you can build the WebExtension manually as follows:

  1. Clone the repo.
  2. Run make webext. Your zip file will be located within the ./release/ directory. This zip file is the exact structure expected by all compatible browsers.

Contributing

This project is made up of two parts, the WebExtension and the binary.

WebExtension

The WebExtension is written in (mostly) scoped, vanilla CSS and TypeScript, using React as the view library and Redux (and Thunks) for state management. Yarn is used for dependency management and task running. Data is fetched from the binary via communication with the WebExtension backend.

Binary

The binary is written in Rust stable (1.32.0 at time of writing). The messages it expects to receive from the WebExtension backend follow a faux HTTP format; for instance, to get all the bookmarks, you pass it a JSON object of the following format: { method: 'GET' }.

bukubrow's People

Contributors

samhh avatar andipabst avatar

Watchers

James Cloos avatar Olmatro 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.