0.1.8 • Published 6 months ago

onyx-ignition-forge v0.1.8

Weekly downloads
-
License
-
Repository
-
Last release
6 months ago

Forge


Getting started

Having certain software preinstalled is required. More robust installers will be added. For now it recommended to preinstall Node, Python, and Enscripten

  1. Clone the git repo.
git clone https://github.com/drew-eastmond/Forge.git
  1. Execute the Forge/install.js script. if --init parameter will add an empty .forge configuration file. Forge currently supports the following packages and more will be added. --typescript, --tailwindcss, --sass, --twig, --enscripten
node ./Forge/install.js --init <package_1> <package_2> <...package_n>
  1. Modify the .forge configuration file. Add ForgeServices, ForgeTasks, and ForgeActions. Check the wiki on how to modify the configuration files.
  2. Run the node ./Forge/run.js or build your

What is Forge?

Forge is an incremental build system for creating your own custom pipelines. On top of wrapping CLI processes it is written in Node to streamline developing projects that require multiple laungauges and with it mulitple frameworks. Forge provides interoperability by capturing interprocess communications and processing those messages into signals to be used by Forge dispatch to ForgeActions that implement those signals.

Forge also adds extra functionality like:

FeatureDescription
File WatchingLaunch ForgeActions based on Regular Expressions
File ServerServes from a local development enviroment
Routing and Remote InvocationInvoke any functionality exposed by a ForgeService using routing. Extend the ForgeClient and implement your own delegates.
Dashboards and UI PanelsLeverages the routing system to expose ForgeService's to render forms and HTML. Provide your developers with status updates or edit parameters via an UI.
Persistent storageImport, export, or share development sessions amoung mulitple developers

Forge was architecteched to utilize a simplified paradigm so developers can adopt it quickly, and provide a pleasant developer experience. It should be noted Forge does not replace tools like Webpack, Esbuild, TailwindCSS, SASS, Vite, Create-React-App, etc, but instead Forge wraps them using process adapters.

Forge is not just limited to local development pipelines but can creatively integrate remote processes and sequence advanced dependencies. Create remote collaborations or bootstrap your own CI/CD pipelines from custom scripts.

Currently Forge is built in Node but there are provisions to mirror the library to run exclusively in Python.

Right now l am focused on making HTML5 game development more streamlined. So Forge current will have a focus on Typescript/Javascript, WASM, CSS, HTML. Most importantly Forge is not limted to Node, but has provisions for python, C++, RUST, and manipulating image and sound assets. Remember Forge was built around polyglot development, so long as those tools can be launched via the CLI using exec, spawn, fork, or workers.

Forge is composed of the following modules:

ComponentsDescriptionStatus
ForgeA Manager class.Stable
ForgeStreamHandles a pipeline execution run, and queueing ForgeActions based on dependencies to other ForgeActionsStable
ForgeTaskA collection of ForgeActions.Stable
ForgeActionCaptures and dispatch IPC messages to a ForgeService service.Stable
DashboardDashboard to manage all configurations for ForgeTasks and ForgeActions. Can also launch ForgeActions manually if implmentedUnstable
ForgeStorageProvides an abstraction for persistent storage for Services or ForgeActions ( memory, files, databases ).Unstable
ForgerServesQuickly serve build files from any folder.Stable
RoutingInternal routing to render custom UIs within the developer Dashbaord. Meant for knowledgeable developers to build forms that will customize configurations during dispatch. Ideally for seniors to implement for junior developers.Prototype
WatchWatch files and dispatch ForgeActions based on matchesStable

Examples

by setting up a .forge config file. Forge will parse this file, inject variables and reparse the file. {static_variable} will be replaced with vaiables in the variable. {{dynamic_varaible}} will be resolved each signal. These can be nested and accessed via dot notations.

Forge Wiki: .forge Example

If your want to customize Forge you can write your own script and compile them. Forge can easily build and run typescript files. THe sourve files are included so you can bootstrap your own custom build pipelines.

Forge Wiki: Customized run.js Example

0.1.8

6 months ago

0.1.5

6 months ago

0.1.4

6 months ago

0.1.3

6 months ago

0.1.2

6 months ago

0.1.1

6 months ago

0.1.0

6 months ago

0.0.10

6 months ago

0.0.9

6 months ago

0.0.8

6 months ago

0.0.7

6 months ago

0.0.6

6 months ago

0.0.5

6 months ago

0.0.4

6 months ago

0.0.3

6 months ago

0.0.2

6 months ago

0.0.1

6 months ago