GIFSockets are never-ending animated GIFs for sending text and images between people.
Demo: http://gifsockets.twolfson.com/
gifsockets-server
is a reimplementation of videlalvaro/gifsockets. It was written in Clojure and not trivial to set up, especially without any Clojure experience.
This project is written in JavaScript and use gif-encoder for encoding and PhantomJS for canvas preparation.
To run this website locally:
npm install -g gifsockets-server phantomjs-pixel-server
phantomjs-pixel-server &
gifsockets-server
# Website will be available at http://localhost:8000/
This code was written during Node Knockout 2013, a 48 hour hackathon, but it is slowly being organized.
The server you are running is at server/app.js
and the gif
logic is inside of lib
.
Modules which are part of this project include:
gifsockets
The heart of thegifsockets project
, a mediator for subscribing any writable stream to newly written GIF framesgifsockets-middleware
Plug and play middlewares to set up a server withgifsockets
gif-encoder
A fork of gif.js with stream support and is optimized for node.js performancephantomjs-pixel-server
A PhantomJS server which takes text and converts it to anrgba
array of pixels
Server-side dependencies are managed with npm and client-side dependencies are managed with grunt. To install the latest dependencies
npm install
# npm http GET https://registry.npmjs.org/marked
# npm http GET https://registry.npmjs.org/express
# ...
grunt install
# Running "curl-dir:public/js/" (curl-dir) task
# Files "public/js/filereader.js", "public/js/filereader.min.js", "public/js/jquery.js" created.
# ...
# Done, without errors.
If you never used grunt before, install the CLI tool via
npm install -g grunt-cli
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint via grunt and test via npm test
.
Support this project and others by twolfson via gittip.
As of Nov 10 2013, Todd Wolfson has released this repository and its contents to the public domain.
It has been released under the UNLICENSE.