Meteor (web framework)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Meteor
DeveloperMeteor Software
Initial releaseJanuary 20, 2012; 14 years ago (2012-01-20)[1]
RepositoryMeteor Repository
Written inJavaScript
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating systemCross-platform
    TypeJavaScript framework
    LicenseMIT 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]
    1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    7. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    8. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    9. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    10. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    11. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    12. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    13. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    14. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    15. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    16. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    17. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    18. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    19. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    20. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    21. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    22. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    23. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    24. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    25. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    [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).