Prague enables distributed, collaborative applications by providing developers with eventually consistent Distributed Data Structures, a flexible component and app model ("Chaincode"), and a reference server implementation with minimal COGS ("Routerlicious.")
Teams are using Prague for low latency collaboration, zero setup data persistance, and on-by-default cross app compatibility. Among other projects, our partner teams are building components for text editing, gaming, command line tooling, and IoT.
Use Yo Fluid to get set up quickly after cloning the Prague repo.
First, do these one time steps:
npm install -g yo
cd .../Prague/tools/generator-fluid
npm install
npm link
Yo Fluid is now ready. Try it!
yo @prague/fluid
Chaincode has additional examples of building components with Prague.
* For Yo Fluid setup issues: Unauthorized - Stack Overflow
Update Dockerfile with a reference to your package.json.
Update rush with a reference to your package name.
Fluid Docs is our alpha version of our documentation and tutorial website.
The Prague team answers questions on the Microsoft internal StackOverflow using the tag Prague
- How do I get started?
- Check out Yo Fluid
- Why can't I build or start docker?
- Why can't I install Prague dependencies?
- Is there a set of design principles I can look at?
- Architectural design principals can be found in the Fluid documentation.
- Do you have a homepage?
- Fluid Docs is our alpha version of our documentation and tutorial website.
- Demo Portal is our prototype demo portal
- Why aren't commandline tools working?
- Do you have any suggested reading before I get started?
- Get hacking: check out yo fluid!
- If you need to read, check out our architecture documents.
- Can I contribute to Prague?
- Heck yeah.
- What is the difference between Fluid and Prague?
- Prague was the initial code name for the project and prototype effort. Fluid (Framework) is the official name that was announced at //Build. We are in the process of transitioning the new name
Yo Fluid (Prague Getting Started)
Samples/Chaincode contains our latest component and chaincode demos. This is the right place to get started checking out the world of Prague.
Packages contains the core Fluid runtime
- Loader startup code that loads Fluid container
- Runtime core Fluid runtime definition and distributed data structures
- Framework base classes and interfaces for Fluid Framework that implements basic default behavior of components and containers.
- Drivers contains the drivers targeting different server implementation endpoints (e.g. Routerlicious and ODSP)
- Components contains the component mechanism that enable components to be built on top of the Fluid runtime. It also contains the sample Flow and Table components.
- Server (To be moved to
server
directory) contains libraries for the reference implementation of the core server services
Server contains the reference server implementation Routerlicious
Docs is the documentation source for Fluid Docs
-
Components Architecture has documentation and diagrams for the component architecture.
-
Service Architecture has documentation and diagrams of the service architecture.
Architectural design principals can be found in the Fluid documentation.
Developers looking to make deep/advanced Prague changes can find our latest implementations in Routerlicious.
Samples/legacy folder contains a set of legacy prototypes around a collaborative canvas. As well as MUIs that load within the browser or within an enlightened host.
Project | Status |
---|---|
Packages | |
Routerlicious | |
Admin | |
Auspkn | |
Historian | |
Historian Chart | |
Cobalt | |
GitSSH | |
GitRest | |
Headless Chrome | |
Prague metrics | |
Prague metrics chart |
To ensure minimal latency and smoother user experience, we deploy our backend in a few different Azure regions. If you are closer to west coast, use the following endpoints located at Washington:
Our code is deployed immediately after check in to:
East coast developers are encouraged to use the following endpoints(located at Virginia):
Developers in Europe can use the following endpoints (Located at Netherlands):