Meteor (web framework)
| Meteor | |
|---|---|
| Developer | Meteor Software |
| Initial release | January 20, 2012[1] |
| Repository | Meteor Repository |
| Written in | JavaScript |
| Engine | |
| Operating system | Cross-platform |
| Type | JavaScript framework |
| License | MIT License |
Meteor, or MeteorJS, is a free and open-source isomorphic JavaScript web framework[2] written using Node.js. Meteor allows for rapid prototyping and produces cross-platform (Android, iOS, Web) code. The server-side MongoDB program is the only proprietary component of Meteor and is part of the Meteor download bundle. It is possible to use Meteor without using the server-side MongoDB. It uses the Distributed Data Protocol and a publish–subscribe pattern to automatically propagate data changes to clients without requiring the developer to write any synchronization code.
Meteor uses JavaScript as its primary programming language, enabling developers to use a single language for both client-side and server-side code.[citation needed] This approach can streamline the development process for mobile applications by reducing the need for additional programming languages.[citation needed] On the client, Meteor can be used with any popular front-end JS framework.[citation needed]
Meteor is developed by Meteor Software. The startup was incubated by Y Combinator[3] and received $11.2M in funding from Andreessen Horowitz in July 2012.[4] Meteor raised an additional $20M in Series B funding from Matrix Partners, Andreessen Horowitz and Trinity Ventures.[5] It intends to become profitable by offering Galaxy, an enterprise-grade hosting environment for Meteor applications.[6]
History
[edit | edit source]Having been in development for about eight months, Meteor was initially released in December 2011 under the name Skybreak.[7] By April 2012, the framework was renamed Meteor and officially launched.[8] During the next few months, and with the help of large investments from Andreessen Horowitz and endorsements from high-profile figures in the startup world,[8] Meteor steadily increased its user base. It became more commonly used in production apps and websites.
Particularly after receiving large amounts of venture capital in its Series B funding round, Meteor acquired and integrated several other startups into its core product. Acquisitions have included FathomDB, a cloud database startup,[9] Galaxy, a cloud platform for operating and managing Meteor applications,[10] and Kadira, a performance monitoring solution.[11] Meteor has successfully monetized its userbase: In 2016, Meteor beat its own revenue goals by 30% by offering web hosting for Meteor apps through Galaxy.[12]
From 2016 the Meteor Development Group (the open source organisation powering Meteor) started working on a new backend layer based on GraphQL to gradually replace their pub/sub system, largely isolated in the whole node.js ecosystem: the Apollo framework.
In October 2019, the Meteor.js open source framework and Galaxy Hosting Products were purchased by Tiny Capital and renamed Meteor Software.[13]
Distributed Data Protocol
[edit | edit source]Distributed Data Protocol (or DDP) is a client–server protocol for querying and updating a server-side database and for synchronizing such updates among clients. It uses the publish–subscribe messaging pattern. It was created for use by the Meteor JavaScript framework.[14] The DDP Specification is located on GitHub.[15]
Books
[edit | edit source]- Coleman, Tom; Greif, Sacha – Discover Meteor (2014)[16]
- Hochhaus, Stephan; Schoebel, Manuel – Meteor in Action (2014)[17]
- Müns, Philipp – Auditing Meteor Applications (2016)
- Strack, Isaac – Getting started with Meteor.js JavaScript framework (2012)[18]
- Susiripala, Arunoda – Bulletproof Meteor (2014)[19]
- Titarenco, David; Robinson, Josh; Gray, Aaron – Introducing Meteor (2015)[20]
- Susiripala, Arunoda – Meteor Explained – A Journey Into Meteor's Reactivity (2014)[21]
- Turnbull, David – Your First Meteor Application: A Complete Beginner's Guide to the Meteor JavaScript Framework (2014)[22]
Packages and tools
[edit | edit source]- InjectDetect – database injection attack detection[23]
- Vulcan.js – React/GraphQL stack built on top of Meteor[24]
- Apollo – GraphQL server with support for Meteor
- Meteor React Native - Package to integrate with React Native[25]
See also
[edit | edit source]References
[edit | edit source]- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
External links
[edit | edit source]Lua error in mw.title.lua at line 392: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal').
- Lua error in Module:Official_website at line 94: attempt to index field 'wikibase' (a nil value).