Skip to content
This repository has been archived by the owner on Mar 28, 2023. It is now read-only.
/ furipota Public archive

(unmaintained) A discrete FRP DSL for describing better build pipelines.

License

Notifications You must be signed in to change notification settings

robotlolita/furipota

Repository files navigation

FuriPota (フリポタ) Build Status

furipota logo

NOTE
This is a highly experimental project and if you use it in production kittens will turn into people. No-one would ever want that to happen, right?

FuriPota (short for "Deep Fried Potatoes" or "(discrete) Functional Reactive Programming Tasks") is a cross-platform, discrete FRP DSL for describing better build pipelines. The goal is to have a system that has deterministic and fast builds. That is, building from a FuriPota description should always have the same results, and it should do that as fast as possible.

The model is simple: you define a closed system of discrete input streams and their transformations (as pure functions). Dependencies are implicitly described by such transformations. The description is fed to the FuriPota runtime, which takes care of applying it to get the desired results.

There's a vague roadmap here.

Getting started

Install it with npm:

$ npm install -g origamitower/furipota

Create a build.frp file:

%furipota/1

import core "prelude"

export define hello-world =
  # Says "Hello, world"
  Stream.from-vector ["Hello", ", ", "world"]
    |> (x -> Stream.of (display x))

You can check which bindings are exported with list:

furipota list

Finally, you can run the build pipeline passing a furipota expression to run:

furipota run hello-world

Check the examples/ folder and the docs/ folder for more stuff. You can run the examples with furipota-run, like:

furipota-run examples/simple/factorial.frp

Licence

furipota is copyright (c) Quildreen Motta, and released under MIT.

About

(unmaintained) A discrete FRP DSL for describing better build pipelines.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published