What Are Streams?

Streams are simply structures of data that you can store data in. Almost anything can be a stream. For instance, the Blog Module has standard fields like Category, but the blog posts data structure is a stream, so you can easily add a custom field to it. Need to have an image for every blog post? You can add that as a custom field and display it alongside the other blog fields.

On a technical level, streams are simply database tables (every stream represents a database table), so if you need to reference streams directly in custom code, you can easily do that.

Field Types

Every piece of data added to a stream needs some basic things defined. What kind of form input do we use to get the information into the database? Does this data need special validation? It is accessed in templated with just one variable, or are there several to choose from? Field types have the answers to all those questions, and they represent a type of data that can be aded to a structure.

For instance, if you need to add a textarea to a stream, there is a textarea field type. There is an image field type type, a WYSIWYG field type, and even a relationship field type, which allows you to related entries of different streams. For a list of all the field types that come with PyroCMS, check out the Core Field Types documentation. You can also find third party field types on the PyroCMS add-ons listing.

The Streams Core

The Streams Core module comes with the free Community version of PyroCMS and contains all the core logic needed for streams to function. The Pages module, the Blog module, and the Users module all use the Streams Core in the community edition. The only thing you can't do is create your own Streams using a GUI interface. For that, you'll need the Streams Module.

The Streams Core API

Since all the core logic of streams is in the community edition, developers can add streams to their modules or generally develop with streams using the Streams Core API.

The Streams Module

The Streams Module allows you to create standalone streams (unlike the streams created in the pages module, for instance, which are tied specifically to pages). It is part of PyroCMS Pro and can also be purchased as a standalone module.