Skip to content

Commit

Permalink
♻️ Rename Railway FBP to Flow
Browse files Browse the repository at this point in the history
  • Loading branch information
matyo91 committed Dec 24, 2022
2 parents b2d2544 + 3dba0df commit bed5bcb
Show file tree
Hide file tree
Showing 96 changed files with 537 additions and 733 deletions.
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ GitHub.
Then clone your fork:

```bash
$ git clone [email protected]:darkwood-fr/railway-fbp.git
$ git clone [email protected]:darkwood-fr/flow.git
$ git checkout -b bug-or-feature-description
```

Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License (MIT)

Copyright (c) 2022 Mathieu Ledru <[email protected]>
Copyright (c) 2022 Mathieu Ledru <[email protected]>

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
Expand Down
19 changes: 9 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,41 +1,40 @@
<p align="center">
<a href="https://github.com/darkwood-fr/railway-fbp">
<img src="docs/images/concept.png" width="auto" height="128px" alt="Railway Flow Based Programming">
<a href="https://github.com/darkwood-fr/flow">
<img src="docs/images/logo.png" width="auto" height="128px" alt="Flow">
</a>
</p>

## Why ?

Railway Flow Based Programming concept aims to solve
Flow concept aims to solve

- Adopt asynchronous as native implementation
- Build your code with functional programming and monads
- Assemble your code visually

## Installation

PHP 8.1 is the minimal version to use _Railway Flow Based Programming_ is 8.1
PHP 8.1 is the minimal version to use _Flow_ is 8.1
The recommended way to install it through [Composer](http://getcomposer.org/) and execute

```bash
composer require darkwood/railway-fbp
composer require darkwood/flow
```

## Usage

A working script is available in the bundled `examples` directory
A working script is available in the bundled `examples` directory in `packages/php`

- in `packages/php`
Run Rail : `php examples/rail.php`
- Run Flow : `php examples/flow.php`
- Start Server : `php examples/server.php`
Start Client(s) : `php examples/client.php`

Messaging part require to install [Docker](https://www.docker.com) and execute `docker-compose up -d`

## Documentation

[https://darkwood-fr.github.io/railway-fbp](https://darkwood-fr.github.io/railway-fbp)
[https://darkwood-fr.github.io/flow](https://darkwood-fr.github.io/flow)

## License

_Railway Flow Based Programming_ is released under the MIT License.
_Flow_ is released under the MIT License.
4 changes: 1 addition & 3 deletions bin/splitsh-deploy
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,6 @@ function remote()

git pull origin $CURRENT_BRANCH

remote php [email protected]:darkwood-fr/railway-fbp-php.git
remote symfony [email protected]:darkwood-fr/railway-fbp-symfony.git
remote php [email protected]:darkwood-fr/flow-php.git

split 'packages/php' php
split 'packages/symfony' symfony
6 changes: 3 additions & 3 deletions bin/splitsh-release
Original file line number Diff line number Diff line change
Expand Up @@ -54,14 +54,14 @@ git push origin --tags
bash bin/splitsh-deploy

# Tag Components
for REMOTE in php symfony
for REMOTE in php
do
echo ""
echo ""
echo "Releasing $REMOTE";

TMP_DIR="../railway-fbp-split"
REMOTE_URL="[email protected]:darkwood-fr/railway-fbp-$REMOTE.git"
TMP_DIR="../flow-split"
REMOTE_URL="[email protected]:darkwood-fr/flow-$REMOTE.git"

rm -rf $TMP_DIR;
mkdir $TMP_DIR;
Expand Down
2 changes: 1 addition & 1 deletion docs/config/_default/config.toml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
baseurl = "https://darkwood-fr.github.io/railway-fbp/"
baseurl = "https://darkwood-fr.github.io/flow/"
canonifyURLs = false
disableAliases = true
disableHugoGeneratorInject = true
Expand Down
2 changes: 1 addition & 1 deletion docs/config/_default/menus/menus.en.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
[[social]]
name = "GitHub"
pre = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-github\"><path d=\"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\"></path></svg>"
url = "https://github.com/darkwood-fr/railway-fbp"
url = "https://github.com/darkwood-fr/flow"
post = "v0.1.0"
weight = 10

Expand Down
14 changes: 7 additions & 7 deletions docs/config/_default/params.toml
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# Meta Data for SEO

## Homepage
title = "Railway-FBP"
title = "Flow"
titleSeparator = "-"
titleAddition = "Railway Flow Based Programming"
titleAddition = "Flow"
description = "Assemble your code by adopting asynchronous as native implementation and build with functional programming and monads."

## Open Graph
images = ["railway-fbp.png"]
images = ["flow.png"]
ogLocale = "en_US"
domainTLD = "darkwood-fr.github.io"
titleHome = "Doks Theme"
Expand All @@ -25,15 +25,15 @@ schemaAuthorTwitter = "https://twitter.com/matyo91"
schemaAuthorLinkedIn = "https://www.linkedin.com/in/mathieu-ledru/"
schemaAuthorGitHub = "https://github.com/matyo91"
schemaLocale = "en-US"
schemaLogo = "logo-railway-fbp.png"
schemaLogo = "logo-flow.png"
schemaLogoWidth = 512
schemaLogoHeight = 512
schemaImage = "railway-fbp.png"
schemaImage = "flow.png"
schemaImageWidth = 1280
schemaImageHeight = 640
schemaTwitter = "https://twitter.com/darkwood_fr"
schemaLinkedIn = ""
schemaGitHub = "https://github.com/darkwood-fr/railway-fbp"
schemaGitHub = "https://github.com/darkwood-fr/flow"
schemaSection = "blog"

## Sitelinks Search Box
Expand Down Expand Up @@ -62,7 +62,7 @@ alertDismissable = true
alertText = "Introducing the Doks child theme, several DX + UX updates, and more! <a class=\"alert-link stretched-link\" href=\"https://getdoks.org/blog/doks-v0.2/\">Check out Doks v0.2</a>"

# Edit Page
docsRepo = "https://github.com/darkwood-fr/railway-fbp"
docsRepo = "https://github.com/darkwood-fr/flow"
editPage = true

[options]
Expand Down
2 changes: 1 addition & 1 deletion docs/content/en/_index.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title : "Railway Flow Based Programming"
title : "Flow"
description: "Assemble your code by adopting asynchronous as native implementation and build with functional programming and monads."
lead: "Assemble your code by adopting asynchronous as native implementation and build with functional programming and monads."
date: 2020-10-06T08:47:36+00:00
Expand Down
2 changes: 1 addition & 1 deletion docs/content/en/blog/_index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Blog"
description: "The Railway FBP Blog."
description: "The Flow Blog."
date: 2020-10-06T08:49:55+00:00
lastmod: 2020-10-06T08:49:55+00:00
draft: false
Expand Down
2 changes: 1 addition & 1 deletion docs/content/en/docs/_index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title : "Docs"
description: "Docs Railway FBP."
description: "Docs Flow."
lead: ""
date: 2020-10-06T08:48:23+00:00
lastmod: 2020-10-06T08:48:23+00:00
Expand Down
2 changes: 1 addition & 1 deletion docs/content/en/docs/getting-started/_index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Getting Started"
description: "Getting Started Railway FBP."
description: "Getting Started Flow."
lead: ""
date: 2020-10-06T08:49:15+00:00
lastmod: 2020-10-06T08:49:15+00:00
Expand Down
37 changes: 25 additions & 12 deletions docs/content/en/docs/getting-started/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,27 @@ weight: 60
toc: true
---

### 1.1.1

- Rename entire project from `Railway FBP` to `Flow`
- Merge from `packages/symfony` to `packages/php` and make Flow [Symfony](https://symfony.com) friendly
- New DX interface `Flow\FlowInterface`
- Error managment is now integrated to Flow
- Remove context associated with processing IP
- Deprecate `Flow\Flow\SequenceFlow` in favor for `Flow\Flow\Flow`
- Deprecate `Flow\Flow\ErrorFlow` in favor for `Flow\Flow\Flow`
- Update `Flow\Flow\YFlow` and make it plain native
- Update `Flow\IP` that use readonly object
- New Flow logo

### 1.1.0

- Release MIT License
- Update dependencies to PHP 8.1

### 1.0.9

- Add RFBP\Rail\LambdaRail that allows introduce recursivity into Railway-FBP language approach.
- Add `Flow\Flow\YFlow` that allows introduce recursivity into Flow language approach

### 1.0.8

Expand All @@ -32,8 +45,8 @@ toc: true

### 1.0.6

- Add TransportRail
- Rail can process multiple jobs in parallel
- Add `Flow\TransportFlow`
- Flow can process multiple jobs in parallel

### 1.0.5

Expand All @@ -47,21 +60,21 @@ toc: true

### 1.0.3

- Add RFBP\IpStrategy add several Ip strategy for data processing
- Add `Flow\IpStrategy` add several Ip strategy for data processing

### 1.0.2

- Add RFBP\Driver\DriverInterface
- Add RFBP\Driver\AmpDriver
- Add RFBP\Driver\ReactDriver
- Add RFBP\Driver\SwooleDriver
- Add `Flow\Driver\DriverInterface`
- Add `Flow\Driver\AmpDriver`
- Add `Flow\Driver\ReactDriver`
- Add `Flow\Driver\SwooleDriver`

### 1.0.1

- Add RFBP\Producer\CollectionConsumer
- Add RFBP\Producer\CollectionProducer
- Add RFBP\Transport\CollectionTransport
- Add `Flow\Producer\CollectionConsumer`
- Add `Flow\Producer\CollectionProducer`
- Add `Flow\Transport\CollectionTransport`

# 1.0.0

- Initial release : Rail, Supervisor, Client
- Initial release : Flow, Supervisor, Client
4 changes: 2 additions & 2 deletions docs/content/en/docs/getting-started/driver.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ toc: true

# Driver

Railway FBP embark multiple drivers.
Flow embark multiple drivers.

## Coroutine

Expand Down Expand Up @@ -60,4 +60,4 @@ More documentation can be found [https://reactphp.org](https://reactphp.org)

## Make your custom driver

You can make your custom driver by implementing `RFBP\DriverInterface`
You can make your custom driver by implementing `Flow\DriverInterface`
46 changes: 46 additions & 0 deletions docs/content/en/docs/getting-started/flow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
title: "Flow"
description: "Flow."
lead: "Flow."
date: 2020-10-13T15:21:01+02:00
lastmod: 2020-10-13T15:21:01+02:00
draft: false
images: []
menu:
docs:
parent: "getting-started"
weight: 20
toc: true
---

# Flow

## Flow implementation

According to [Wikipedia](https://en.wikipedia.org/wiki/Monad_(functional_programming)), Monads is an abstract generic structure that get its usage in function composition. Monads can shortly considered as `Programming with effects`.

We consider `Flows` as a set of elements in our ensemble as a Monad implementation :
- By using `job` as basic function type within the `Flow`.
- By using `fn` as a binary operation, `Flow` can be composed together with others `Flow` element.

A `Flow` can process one or many `Ips` which has its application for asynchronous programming when mixing with [`Drivers`](drivers.md).

## Flow

This is the standard Flow implementation that support asynchronous `Ip` processing.

## FlowDecorator

This is useful for implementing the [decorator design pattern](https://en.wikipedia.org/wiki/Decorator_pattern).

## TransportFlow

TransportFlow will interact with Flow with Producer and Sender.

## YFlow

YFlow use YCombinator to provide recursion.

## Make your own Flow

You can make your custom Flow by implementing `Flow\FlowInterface`.
14 changes: 7 additions & 7 deletions docs/content/en/docs/getting-started/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,35 +13,35 @@ weight: 10
toc: true
---

# Railway FBP
# Flow

## Why ?

Railway Flow Based Programming concept aims to solve
Flow concept aims to solve

- Adopt asynchronous as native implementation
- Build your code with functional programming and monoids
- Assemble your code visually

## Installation

PHP 8.1 is the minimal version to use _Railway Flow Based Programming_ is 8.1
PHP 8.1 is the minimal version to use _Flow_ is 8.1
The recommended way to install it through [Composer](http://getcomposer.org/) and execute

```bash
composer require darkwood/railway-fbp
composer require darkwood/flow
```

## Usage

A working script is available in the bundled `examples` directory

- Run Rail : `php examples/rail.php`
- Run Flow : `php examples/flow.php`

## Documentation

[https://darkwood-fr.github.io/railway-fbp](https://darkwood-fr.github.io/railway-fbp)
[https://darkwood-fr.github.io/flow](https://darkwood-fr.github.io/flow)

## License

_Railway Flow Based Programming_ is released under the MIT License.
_Flow_ is released under the MIT License.
4 changes: 2 additions & 2 deletions docs/content/en/docs/getting-started/ip-strategy.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ toc: true

# Ip Strategy

When processing Rail with one or multiple Ips, you can choose a strategy that will sequence the order of processing Ip.
When processing Flow with one or multiple Ips, you can choose a strategy that will sequence the order of processing Ip.

## LinearIpStrategy

Expand All @@ -32,4 +32,4 @@ You can embed it by a custom strategy with is `LinearIpStrategy` by default.

## Make your Ip Strategy

You can make your custom Ip strategy by implementing `RFBP\IpStrategyInterface`
You can make your custom Ip strategy by implementing `Flow\IpStrategyInterface`
2 changes: 1 addition & 1 deletion docs/content/en/docs/getting-started/license.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ toc: true

The MIT License (MIT)

Copyright (c) 2022 Mathieu Ledru <[email protected]>
Copyright (c) 2022 Mathieu Ledru <[email protected]>

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
Expand Down
Loading

0 comments on commit bed5bcb

Please sign in to comment.