Riverbed
No description available
Install / Use
/learn @Wesss/RiverbedREADME
Riverbed
Riverbed is a programming framework inspired by Flow Based Programming. In short, this library enables a plug-and-play style of programming where we define many black box components, then externally connect them together to define our program's control flow.
Currently, Riverbed has only been tested against Neko and Python targets.
Advantages:
- High Level Views
- Ever return to a project to find a jumbled mess of calls and callbacks? By extracting all of our control flow into the "top" of our program, we now have an place to re-orient ourselves and quickly split apart and dive into different parts of the program. Components can be composed of other components, allowing for further abstraction of large applications.
- Naturally Testable and Reusable
- Components are just wrappers on single functions, which are inherently testable. As dependencies and dependants are hooked up externally, there's little need to write mocks/stubs and inject other dependencies during testing. Reusing components is just a matter of plugging them into new inputs/outputs, and finding existing components is made easy with our top-level view of the application.
Disadvantages:
- Performance
- Wrapping every method call can be expensive in both time and memory. This is probably not a good solution for performance-critical code.
More:
See https://colab.coop/blog/how-to-start-flowing-with-flow-based-programming/ for more details on flow based programming in general.
API
API will be fully documented with 1.0.0 release. For now, see Flow and Util class method documentation.
Contributing
First Time Setup
- download/install haxe/haxelib, set to version 4.0.5
- install dependencies
haxelib install utest
Unit Testing
Run the unit tests with haxe interpreter:
haxe interpret-tests.hxml
Unit tests can be compiled to targets and run as well.
haxe compile-tests.hxml
, then run the files at build/test/ with their respective environments. see .circleci/config.yml for docker images that can run each target.
Submitting Haxelib
- In explorer, zip project directionry (ie.
Riverbed) Haxelib submit Riverbed.zip <password>
Related Skills
node-connect
349.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.5kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
349.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
349.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
