This is a fork of Carlisle's original Rumba project.
Rumba (and therefore RumbaLean) are an almost full implementation of the HTTP 1.1 protocol: only SSE (Server Side Events) are missing.
RumbaLean needs at least Dyalog APL 18.2 Unicode.
These are the goals of this fork:
- Allow the path to the Conga DLLs being specified as a parameter (optional)
- Copy the
Congaclass dynamically from the installation folder of the currently running version of Dyalog - Allow the specification of Conga's "rootname" parameter
- Added function
Shutdownthat needs to be called in order to restart Conga - RumbaLean requires upfront initialisation before it can be used
- All calls to
InitCongaare removed from the Rumba functions - Avoid all dependencies except the need of the Conga DLLs
- Allow trapping crashes on the exit functions (
OnStart,OnRequest, ...) with an alternative mechanism: by default the APLTree classHandleErroris used for this - Uses the Conga class rather than the namespace
DRC - Remove namespaces that are not required for Rumba's core functionality:
Doc,DemoAppandWebAdmin - Remove functions from the
Adminnamespace that are not needed for Rumba's core functionality:BuildPackage,BuildRelease,CopyFolder,CopyProject,LoadHelp,StartHelpandGetDrudgeReport
Notes:
- Main goal is to keep Rumba's core functionality in line with the original project
- The test cases are still part of the project
- The help is available in a sub folder - execute
RumbaHelp/ViewHelp.exe - In order to build a new version load
Make\Make.dws - RumbaLean has its own version number
There are two main differences between the original Rumba project and RumbaLean:
-
The way the Conga DLLs are located. RumbaLean uses the ones of the currently running version of Dyalog. If you don't want that you have to tell RumbaLean where to look for them as the first optional right argument to
InitConga. -
You may specify an optional "rootname" (Conga). This is important if you wish to use Rumba in the same workspace for two different applications. Each application should "see" only its own Conga objects, and for that you must specify "rootname" for at least one of them so that they use different ones. Default is "DEFAULT".
Call the function Core.Start. You may provide the folder that carries the Conga DLLs as the right argument.
- Call
InitCongaonce with a proper right argument in order to initialize.
Most of the changes are actually performed by the "Make" workspace. Any changes made to the code are marked up with comments like ⍝ Kai. The reason for this is that this makes a comparison between the original Rumba project and RumbaLean easier.
The drawback of this approach is that the resulting "RumbaLean" workspace looks very different from the project workspace.
There is a separate document HowToSyncWithRumba.md available that addresses this issue.