All Projects → getify → H5ive Deprecated

getify / H5ive Deprecated

**DEPRECATED** A collection of thin facade APIs wrapped around HTML5 JavaScript features.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to H5ive Deprecated

aldryn-bootstrap3
DEPRECATED, this project is no longer maintained, see README for more information.
Stars: ✭ 44 (-86.75%)
Mutual labels:  deprecated
lumbermill
DEPRECATED: Log Processor. See https://engineering.heroku.com/blogs/2016-05-26-heroku-metrics-there-and-back-again/ for more information.
Stars: ✭ 42 (-87.35%)
Mutual labels:  deprecated
Simpleauthentication
⛔️ [DEPRECATED] A really simple way for developers to add "Social Authentication" to their ASP.NET web application
Stars: ✭ 299 (-9.94%)
Mutual labels:  deprecated
matterpoll-emoji
[DEPRECATED] Poll server for Mattermost
Stars: ✭ 38 (-88.55%)
Mutual labels:  deprecated
VRTK.Prefabs
*Deprecated* - A collection of productive prefabs for rapidly building spatial computing solutions in the Unity software.
Stars: ✭ 61 (-81.63%)
Mutual labels:  deprecated
Bio.jl
[DEPRECATED] Bioinformatics and Computational Biology Infrastructure for Julia
Stars: ✭ 257 (-22.59%)
Mutual labels:  deprecated
addon-sdk-content-scripts
DEPRECATED | Use WebExtensions instead | Add-ons demonstrating how to use content scripts in the Add-on SDK.
Stars: ✭ 23 (-93.07%)
Mutual labels:  deprecated
Dagre
⛔ [DEPRECATED] - Directed graph layout for JavaScript
Stars: ✭ 3,504 (+955.42%)
Mutual labels:  deprecated
rust-usb
Deprecated: see libusb-rs
Stars: ✭ 23 (-93.07%)
Mutual labels:  deprecated
Prehistoric Entware
Prehistoric Entware
Stars: ✭ 282 (-15.06%)
Mutual labels:  deprecated
Liquid-Application-Framework-1.0-deprecated
Liquid is a framework to speed up the development of microservices
Stars: ✭ 26 (-92.17%)
Mutual labels:  deprecated
ngx-mat-datetime-picker
⛔️ DEPRECATED This is no longer supported, please consider using the repository @angular-material-components/datetime-picker(https://github.com/h2qutc/angular-material-components) instead.
Stars: ✭ 29 (-91.27%)
Mutual labels:  deprecated
Grunt Filerev
[DEPRECATED] File revving
Stars: ✭ 261 (-21.39%)
Mutual labels:  deprecated
Drupal-Scaffold
DEPRECATED: This project has been replaced by documentation within Confluence regarding best practices for setting up a new Drupal 9 project.
Stars: ✭ 48 (-85.54%)
Mutual labels:  deprecated
Weka
Now redundant weka mirror. Visit https://github.com/Waikato/weka-trunk for the real deal
Stars: ✭ 304 (-8.43%)
Mutual labels:  deprecated
python-poster
DEPRECATED Streaming HTTP uploads and multipart/form-data encoding
Stars: ✭ 16 (-95.18%)
Mutual labels:  deprecated
tmwa
DEPRECATED: The server running The Mana World Legacy. All new projects should use Hercules instead. See the "evol-hercules" repo.
Stars: ✭ 44 (-86.75%)
Mutual labels:  deprecated
Deprecated Mapbox Ios Sdk
REPLACED – use https://www.mapbox.com/ios-sdk instead
Stars: ✭ 325 (-2.11%)
Mutual labels:  deprecated
Starx
[DEPRECATED] Lightweight, scalable ,distributed game server framework for Golang
Stars: ✭ 308 (-7.23%)
Mutual labels:  deprecated
Vip Quickstart
Retired
Stars: ✭ 268 (-19.28%)
Mutual labels:  deprecated

h5ive

A collection of thin facade APIs wrapped around HTML5 JavaScript features. The goal is to provide a simple layer of abstraction on top of the native APIs, to insulate you the developer (and more importantly, your production code!) from potential inconsistencies, bugs, and even specification changes.

Want more information about the motivations behind this project? Nicholas Zakas wrote a fantastic article: The Problem with Native JavaScript APIs, which was my inspiration for the h5ive project. Also, check out my slide-deck for Stop Using Native HTML (video will be posted from this talk ASAP).

This is not a "HTML5 shim|v" for semantic tags. It is not a library or framework. It is not a polyfill for older browsers. It is not a replacement for Modernizr (though it will have basic feature tests for the APIs it wraps).

Some API sugar flavor will be included, but do not expect for this library to be as sugary as something like jQuery. You can wrap other abstraction layers easily on top of h5ive.

Testing

It will be an important (read: mandated) part of the culture of this project that all code which is submitted must have some reasonable tests.

First and foremost, each module starts with an example usage of the API (see "Contributions" below), so the eventual submitted code for that module must at a minimum actually "pass" the test of being able to run the example API we agree on.

Moreover, contributors should make a good effort to provide one or more integration tests (unit tests not necessarily required), which ideally will be automatable.

We have not yet, as a project, chosen a specific testing framework or approach, so these statements are not mandating how the tests are written, only that there must be a good faith effort to provide tests along with code. A first priority will be to write tests for the code which is already in this repository.

Contributions

Contributions are obviously welcomed and encouraged. But let's be a little bit intentional about how we want this to work. Here are some suggestions for how to be most friendly in terms of contributions:

  1. Pick of one the native HTML5 APIs that you have some familiarity with, perhaps from this list:

    History
    Web Workers
    Web Sockets
    Geolocation
    <audio> / <video>
    File / FileSystem
    Web DBs
    BlobBuilder
    Blob URLs
    FormData
    Device APIs
    Server-Sent Events
    appCache
    Web Intents
    registerProtocolHandler
    
  2. This project will follow "example-driven development" practices. Make an example-{WRAPPER_NAME}.js file that illustrates how you think the API facade will/should be used.

This doesn't have to show all possible variations, and it's not a "contract" etched in stone. But it should illustrate the major use-case(s).

  1. Submit a pull-request with only your example file, and explain the API facade you are proposing. We'll discuss it in that pull request.

  2. Once we feel that the API facade is in good shape, amend your pull request to include a sample implementation (named {WRAPPER_NAME}.h5ive.js, and we'll take it from there. NOTE: please also include one or more tests along with the module's implementation (see "Testing" above).

Also, PLEASE avoid these things:

  1. Reformatting this project's code style (we'll decide on a code-style later). Leave spaces, tabs, and semi-colons in existing files alone.

  2. Rewrite this project in some other language (including Coffeescript). This is a JavaScript project. We write JavaScript here. Period.

  3. Convince us that we shouldn't do this, or that some Project XYZ is already doing it better, etc. We'll take any valid, good-faith suggestions from any open-source project, but the goals of this project are unique and will not be shoe-horned into any other project's goals.

  4. Worry too much about stuff like if this will be AMD-compliant or whatever. We'll decide on all that stuff later. There will be a build-tool, and it'll have options for you to pick which flavor you prefer.

h5ive.js

This single file is what you will include in your HTML5 JavaScript projects. It will eventually be customizable with a build-tool, which will let you pick which "module format" (AMD, CommonJS, customized module, etc) you prefer, and then include only which API modules you need.

The entire API will be under the h5 namespace. For instance, XHR2 will be exposed as h5.xhr.

License

The code and all the documentation are released under the MIT license.

http://getify.mit-license.org/

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].