npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

openframe

v0.4.12

Published

Openframe controller process which runs on the machine controlling the frame.

Downloads

63

Readme

Openframe Frame Controller

Friendly disclaimer: This project is under active development; we cannot promise that everything will work 100%. We encourage you to try it out! Feedback and pull requests are welcome :)

The Openframe controller is the software that runs on the frame itself (i.e. the RPi), acting as a process manager for starting, stopping, and transitioning between artworks. It communicates with an Openframe API Server server via a REST API, and connects to a global event system allowing for realtime updates. The idea is to work towards a system which supports the basic goals of Openframe, guided by a handful of pilot use cases.

The block diagram below represents a proposed architecture for the Openframe platform. It will continue to evolve as development on the project progresses.

alt tag

Modules

  • controller.js - manages the actions around controlling the frame (changing artwork, updating settings, etc.)
  • process-manager.js - manages starting and stopping processes for displaying artworks
  • extensions-manager.js - manages installing and initializing extensions (aka plugins)
  • frame.js - a wrapper for the Frame model, which gets persisted to
  • user.js - a wrapper for the User model
  • pubsub.js - creates and manages connection to global event system
  • rest.js - creates and manages connection to REST API via Swagger.js
  • downloader.js - utility for downloading files
  • config.js - configuration options

Usage

FYI: Pardon the lack of detail and documentation. We'll be updating frequently over the coming weeks / months!

If you're just trying to get a frame up and running on a Raspberry Pi, please check out the Openframe User Guide.

If you're interested in hacking on Openframe, feel free to fork/clone this repo. Run npm install to install the deps, then start up the openframe software:

$ npm start

Upon startup, the application will prompt you for your Openframe username and password, and a name for this frame. You can run this on a mac or linux machine (windows untested), though various artwork format extensions are likely to be developed with a specific target platform in mind.

For DEBUG output, set the DEBUG env var:

$ DEBUG=* npm start

Configuration files

When you run npm install, the install.sh script will be executed. This script creates a hidden directory, .openframe, in your user home folder (/home/{username}/.openframe), and copies the default .ofrcconfiguration file there. The .ofrc file contains the server settings — by default this will point to the hosted API server at openframe.io, but if you're running a local server for development or are hosting your own API server you can update the settings in .ofrc accordingly.

After starting the application and answering the prompts, two additional files are created in the .openframe dir, frame.json which stores the frame state, and user.json which stores user data.

Extensions

Extensions are npm packages which add functionality to the frame, either by adding support for a new artwork format (i.e. media type) or by adding other functionality.

For more info on extensions, see the Openframe-Extension repo.