{"id":5267,"date":"2020-09-08T14:37:36","date_gmt":"2020-09-08T21:37:36","guid":{"rendered":"https:\/\/officedevblogs.wpengine.com\/?p=5267"},"modified":"2020-09-08T14:37:36","modified_gmt":"2020-09-08T21:37:36","slug":"fluid-framework-is-now-open-source","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/fluid-framework-is-now-open-source\/","title":{"rendered":"Fluid Framework is now open source"},"content":{"rendered":"<p><span data-contrast=\"auto\">At Microsoft Build we announced Fluid Framework, a new framework designed to help every developer build better collaborative applications. We&#8217;re excited to say that Fluid Framework is now available as an <\/span><a href=\"http:\/\/github.com\/microsoft\/fluidframework\"><span data-contrast=\"none\">open source project<\/span><\/a><span data-contrast=\"auto\">! With Fluid Framework, developers can easily add multi-user interactivity to their apps &#8212; powered by the same code that drives collaboration in Microsoft 365 experiences for millions of users.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:1,&quot;335559739&quot;:160,&quot;335559740&quot;:300}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Fluid Framework is built from the ground up for very low latency collaboration and synchronization. Developers using Fluid&#8217;s distributed data structures can build powerful collaborative applications using familiar programming patterns. When a user makes a change in their browser &#8211; adding a comment, editing content, pressing a button &#8211; all other users will see that change nearly instantaneously.\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:1,&quot;335559739&quot;:160,&quot;335559740&quot;:300}\">\u00a0<\/span><\/p>\n<p><div style=\"width: 1920px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-5267-1\" width=\"1920\" height=\"1080\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2020\/09\/New-video.mp4?_=1\" \/><a href=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2020\/09\/New-video.mp4\">https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2020\/09\/New-video.mp4<\/a><\/video><\/div><\/p>\n<p><span data-contrast=\"auto\">To get this level of performance, Fluid Framework pushes synchronization logic to the edge and keeps the service simple. Each Fluid client is responsible for managing its own state while the Fluid service is only responsible for relaying changes to the connected clients.\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:1,&quot;335559739&quot;:160,&quot;335559740&quot;:300}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">With this technology, the Fluid Framework offers developers:<\/span><span data-ccp-props=\"{&quot;201341983&quot;:1,&quot;335559739&quot;:160,&quot;335559740&quot;:300}\">\u00a0<\/span><\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">A client-centric application model with data persistence requiring no custom server\u00a0code<\/span><span data-ccp-props=\"{&quot;134233279&quot;:true,&quot;201341983&quot;:1,&quot;335559739&quot;:160,&quot;335559740&quot;:300}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"auto\">Distributed data structures with familiar programming patterns<\/span><span data-ccp-props=\"{&quot;134233279&quot;:true,&quot;201341983&quot;:1,&quot;335559739&quot;:160,&quot;335559740&quot;:300}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-aria-posinset=\"3\" data-aria-level=\"1\"><span data-contrast=\"auto\">Very low latency<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><div style=\"width: 1920px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-5267-2\" width=\"1920\" height=\"1080\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2020\/09\/Video.mp4?_=2\" \/><a href=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2020\/09\/Video.mp4\">https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2020\/09\/Video.mp4<\/a><\/video><\/div><\/p>\n<p><span data-contrast=\"auto\">At Build, for example, the Fluid Framework engineering team built a puzzle demo, where thousands of users made updates to jigsaw-like puzzles in real time. Any user could see the result of thousands of small edits and updates. These high-scale and high-performance collaboration capabilities work seamlessly for nearly any productivity or creation experience.<\/span><\/p>\n<p><span data-contrast=\"auto\">We see the launch of the Fluid Framework as the start of a community built around developer technologies for building collaborative applications. We are in the early stages and welcome your feedback, comments, and pull requests. Check out our documentation on<a href=\"http:\/\/FluidFramework.com\"> FluidFramework.com<\/a>, the demos at <a href=\"http:\/\/FluidFramework.com\/playground\/\">FluidFramework.com\/playground\/<\/a> and our GitHub repository to get started.<\/span><\/p>\n<h3><span data-contrast=\"none\">User experience updates\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">Another big element of modern collaborative experiences is the ability to embed elements anywhere content is edited \u2013 in applications like Microsoft Teams, Outlook and beyond.\u00a0 We\u2019ve been busy updating and\u00a0<\/span><span data-contrast=\"auto\">iterating<\/span><span data-contrast=\"auto\"> on these user experiences via fluidpreview.com and connecting those experiences in Microsoft 365. We are looking to roll out more of these scenarios soon.\u00a0<\/span>Afterwards, we plan to preview app developer experiences and how your applications can plug in.<\/p>\n<p><span data-contrast=\"auto\">We hope you take the time to explore the Fluid Framework. Our <a href=\"https:\/\/github.com\/microsoft\/FluidFramework\">open source repo<\/a> is now ready for your feedback and contributions \u2013 we look forward to hearing from you!<\/span><span data-ccp-props=\"{&quot;201341983&quot;:1,&quot;335559739&quot;:160,&quot;335559740&quot;:300}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Related Links:\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:1,&quot;335559739&quot;:160,&quot;335559740&quot;:300}\">\u00a0<\/span><\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-aria-posinset=\"4\" data-aria-level=\"1\"><a href=\"https:\/\/github.com\/Microsoft\/FluidExamples\"><span data-contrast=\"none\"><span data-ccp-charstyle=\"Hyperlink\">github.com\/Microsoft\/<\/span><\/span><span data-contrast=\"none\"><span data-ccp-charstyle=\"Hyperlink\">FluidExamples<\/span><\/span><\/a><span data-ccp-props=\"{&quot;134233279&quot;:true,&quot;201341983&quot;:1,&quot;335559739&quot;:160,&quot;335559740&quot;:300}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-aria-posinset=\"5\" data-aria-level=\"1\"><a href=\"https:\/\/github.com\/Microsoft\/FluidHelloWorld\"><span data-contrast=\"none\"><span data-ccp-charstyle=\"Hyperlink\">github.com\/Microsoft\/<\/span><\/span><span data-contrast=\"none\"><span data-ccp-charstyle=\"Hyperlink\">FluidHelloWorld<\/span><\/span><\/a><span data-ccp-props=\"{&quot;134233279&quot;:true,&quot;201341983&quot;:1,&quot;335559739&quot;:160,&quot;335559740&quot;:300}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-aria-posinset=\"6\" data-aria-level=\"1\"><a href=\"https:\/\/github.com\/Microsoft\/FluidFramework\"><span data-contrast=\"none\"><span data-ccp-charstyle=\"Hyperlink\">github.com\/Microsoft\/<\/span><\/span><span data-contrast=\"none\"><span data-ccp-charstyle=\"Hyperlink\">FluidFramework<\/span><\/span><\/a><span data-ccp-props=\"{&quot;134233279&quot;:true,&quot;201341983&quot;:1,&quot;335559739&quot;:160,&quot;335559740&quot;:300}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-aria-posinset=\"7\" data-aria-level=\"1\"><a href=\"http:\/\/fluidframework.com\/\"><span data-contrast=\"none\"><span data-ccp-charstyle=\"Hyperlink\">FluidFramework.com<\/span><\/span><\/a><span data-ccp-props=\"{&quot;134233279&quot;:true,&quot;201341983&quot;:1,&quot;335559739&quot;:160,&quot;335559740&quot;:300}\">\u00a0<\/span><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>We&#8217;re excited to say that Fluid Framework is now available as an open source project!<\/p>\n","protected":false},"author":69076,"featured_media":25159,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[6],"tags":[],"class_list":["post-5267","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-fluid-framework"],"acf":[],"blog_post_summary":"<p>We&#8217;re excited to say that Fluid Framework is now available as an open source project!<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/5267","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/users\/69076"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/comments?post=5267"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/5267\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media\/25159"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media?parent=5267"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/categories?post=5267"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/tags?post=5267"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}