Frequently Asked Questions
What is DreamFactory?
DreamFactory is an open source REST API platform for mobile application developers. You can install DreamFactory on any server, in the cloud, or on premises. We provide many ways to download and install the software package. You can also sign up for a Free Developer Environment right here at our website. DreamFactory provides a comprehensive suite of RESTful services that enable developers to build browser-based HTML5, hybrid, or native mobile applications without the burden of writing server-side software. Check out our resources to learn more.
How do I get started?
To get started, simply sign up for the Free Hosted Edition. Once you’ve signed up, you can create as many DreamFactory instances as you need. Each instance is a complete backend that you can administer from our Admin Console. You can create any number of applications and administer users, roles, services, files, and schema. You can also import and export applications between instances (for example between Dev, QA, and Production). When you’re ready, you can install DreamFactory on any server of your choice and securely develop, deploy, and manage your mobile applications.
Can I run DreamFactory on my own servers?
Yes, you can install DreamFactory in the cloud or on premises. You can also run DreamFactory on your local desktop for evaluation and development work. Check out the complete list of installation options for more information.
How secure is the DreamFactory Services Platform?
Enterprise-class security is a key benefit of the DreamFactory architecture. Security features include:
- An open source code base reviewed by third-party security auditors.
- Install anywhere and leverage your current security management tools and best practices.
- Single sign on, user management, user roles and permissions, and secure password hashing.
- Flexible access control over applications, services, files, and database CRUD permissions.
- Proxy access to external services with master credentials hidden on the server-side.
- Instant session shutdown for lost or stolen mobile devices in the field.
- Protection against buffer overrun and SQL injection.
How much does it cost?
DreamFactory is an open source software package available under the Apache License. The source code is free to download, use, and share. We offer excellent product support packages and a commercial license for interested customers.
How is DreamFactory licensed?
DreamFactory is open source software licensed under the Apache license. If you make modifications to DreamFactory packages, please share them with our developer community, but you’re not required to do so.
Is there a product roadmap?
What types of applications does DreamFactory support?
DreamFactory is standards-based and client-agnostic. You can always use the REST API directly with either XML or JSON documents. We also dynamically generate a Client SDK for HTML5 frameworks like jQuery, AngularJS, and Sencha, and a code library for native clients like iOS, Windows 8, and Android. We support all major mobile operating systems. Our RESTful services can be used with server to server communications and from IoT devices as well.
How much data can I store in DreamFactory?
As much as you want! DreamFactory runs on your own cloud infrastructure, so it automatically scales to meet your needs.
What’s the history behind DreamFactory?
DreamFactory engineers wrote the world's first smart client applications that consume web services over a decade ago. We worked with XML-RPC in 1998, SOAP in 2002, and REST and JSON in 2004. As the technology behind web services matured, we started writing applications for various partner platforms, including the first AppExchange application DreamTeam in 2006. We have also published on the Intuit Partner Platform, Cisco Webex Connect, Amazon Web Services, and Microsoft Azure. Today, DreamFactory applications are used by over twenty thousand companies.
By 2009 we were building our own service platforms, and installing them on IaaS clouds, including Amazon and Azure. Our engineering team became familiar with the best practices for creating REST APIs, and how to make a service platform fast, scalable, and secure. With the rise of mobile phones and tablets, we realized that our application development model would be extremely useful for other companies to adopt, but there simply wasn't a great open source REST API platform available anywhere. As a consequence, developers had to write their own integration code by hand, over and over again, often with mixed results.
In 2011 we decided to tackle this problem, and started work on the DreamFactory Services Platform. We launched this exciting new product two years later. DreamFactory transforms any IaaS cloud into a PaaS backend for mobile application development. Our platform incorporates more than a decade of deep experience about how to securely build, deploy, and manage service-based applications in the enterprise. DreamFactory can be installed on any server, connected to any SQL or NoSQL database, and used for developing HTML5 or native mobile applications. Our technology enables developers to build modern applications for the phone, tablet, or desktop without having to manage server side code and complexity.
Who is behind DreamFactory?
DreamFactory was founded in 2005 by Bill Appleton, Eric Rubin, and Jennifer Mercer. We were funded in 2006 by NEA, a leading Silicon Valley venture capital firm. Our headquarters are in Campbell, California and we have a development center in Atlanta, Georgia. You can read more about our team here.
How does DreamFactory compare to hosted “backend as a service” (BaaS) products?
Hosted “backend as a Service” (BaaS) products are great for certain applications, especially many types of consumer mobile apps like games. DreamFactory was built to address the needs of enterprise customers. Some key differences include:
- We provide free trials, but enterprise customers need to deploy on their own cloud. Most BaaS products are a hosted service.
- DreamFactory is a standards-based, open source software package that can be modified if necessary for special needs or networks.
- Like most BaaS products we offer access to NoSQL data, but we also offer data and metadata connections for legacy SQL data.
- DreamFactory includes a sophisticated set of enterprise-class services and security features based on a decade of experience.
Is the platform fast?
DreamFactory provides a highly efficient interface to both SQL and NoSQL data. You can hook up any number of databases and they can be located on a local or remote server. Our architecture delivers excellent performance: most REST API transactions take about 1/4 second or less. All requests and responses are automatically compressed with content encoding, which results in about 95% less network traffic. The BLOB storage interface has access to the local server hard disk, or proxy access to S3 and Azure. Your speed will also vary depending on your cloud server and network characteristics.
Is the platform scalable?
DreamFactory was purposely written to scale just like a conventional website. Instead of delivering HTML pages, we deliver JSON documents. Our software package works great both in the cloud and on a dedicated server. For example, our Free Hosted Edition runs on the Apache LAMP stack with a load balancer and multiple cores. Each REST API call runs in a single process. Our server side scripting engine uses V8, so we avoid the single process Node.js bottleneck. Learn more about horizontal and vertical scalability from our documentation on GitHub.
Is your SQL database easy to use?
What field formats do you support?
We support a bunch of different field formats, including ID, string, integer, text, boolean, binary, blob, picklist, float, decimal, phone, email, datetime, date, and time. You can create objects with different field types in the Admin Console or through the metadata services. At runtime this data is returned to the client in either JSON or XML format.
Can I do advanced queries on my data?
Yes, we support everything from single-field queries to complex multiple-field expressions. Regardless of complexity, each query returns the resulting data set as a single JSON or XML response, which can be manipulated on the client and returned to the server again in a single transaction. This is a very efficient way to exchange JSON and XML documents using our simple Live REST API.
Can my data have relationships?
Absolutely, we support arbitrary data relationships including parent-child and many-to-many. You can download arrays of objects and related objects in a single query. You can explicitly manage the relationships, but we also provide pre-built arrays of objects and related objects in JSON arrays. When you manipulate the array and call the update service all of the relationships are automatically updated for you.
Can I ask another question?
Of course you can! Contact us anytime!