Magic and Hyperlambda structure
Aista Magic Cloud is not one project, it’s more than 40 projects in fact. Each project encapsulates some part of Hyperlambda, such as sending emails, parsing XML or JSON, etc. The core projects, or the most “important” projects if you wish, are the following.
- magic.node - Nodes, lambda, Hyperlambda and Expressions
- magic.signals - Magic’s Super Signals implementation or Active Events if you wish
- magic.endpoint - Endpoint resolving in Magic
- magic.data.common - Commonalities for data adapters in Magic
- magic.library - A single project wrapping everything together
- magic.deploy - Deploying Magic to your VPS using Docker
- magic.clone - Cloning Magic and its entire codebase
The following are the “plugins” projects for Magic and Hyperlambda, typically implementing one or more slots each, whom in its combined results becomes the programming language called Hyperlambda. These are the parts that allows you to interact with your database, apply authentication and authorization requirements for your endpoints, etc.
- magic.lambda - The Hyperlambda DSL, and its primary keywords
- magic.lambda.math - Math operations from Hyperlambda
- magic.lambda.http - Invoking HTTP endpoints from Hyperlambda
- magic.lambda.csv - Parsing and creating CSV from Hyperlambda
- magic.lambda.json - Parsing and creating JSON and YAML from Hyperlambda
- magic.lambda.html - Parsing and creating HTML and Markdown from Hyperlambda
- magic.lambda.xml - Parsing and creating XML from Hyperlambda
- magic.lambda.mail - Sending and retrieving emails from Hyperlambda
- magic.lambda.mime - Parsing MIME messages in Hyperlambda
- magic.lambda.auth - Authentication and authorisation in Hyperlambda
- magic.lambda.dates - Manipulating DateTime objects from Hyperlambda
- magic.lambda.slots - Creating your own dynamic slots or functions
- magic.lambda.mysql - Accessing your MySQL server from Hyperlambda
- magic.lambda.pgsql - Accessing your PostgreSQL server from Hyperlambda
- magic.lambda.mssql - Accessing your MS SQL Server from Hyperlambda
- magic.lambda.sqlite - Accessing your SQLite database from Hyperlambda
- magic.lambda.odbc - Accessing an ODBC connection from Hyperlambda
- magic.lambda.image - Image library, allowing you to manipulate images
- magic.lambda.crypto - Cryptography helpers for Hyperlambda
- magic.lambda.guid - Creating a guid from Hyperlambda
- magic.lambda.config - Accessing configuration values from Hyperlambda
- magic.lambda.logging - Logging from Hyperlambda
- magic.lambda.caching - Caching from Hyperlambda
- magic.lambda.strings - Manipulate strings in Hyperlambda
- magic.lambda.scheduler - Create scheduled tasks and workflows from Hyperlambda
- magic.lambda.validators - Validate input in Hyperlambda
- magic.lambda.hyperlambda - Parsing and creating Hyperlambda
- magic.lambda.sockets - Web socket support for Magic using SignalR
- magic.lambda.threading - Thread support for Magic and Hyperlambda
- magic.lambda.pdf - PDF support for Magic and Hyperlambda
- magic.lambda.openai - OpenAI specific slots
In addition to the above projects, Magic also contains middleware, which is the dashboard components, and the Hyperlambda endpoints we provide out of the box. On Aista’s YouTube channel you will also find several playlists, that guides you through the entire platform.
Support
If you have a support request of private nature, you can send us a feature request or a bug report, you can do this at github.com/polterguy/magic/issues. We would also love to discuss Magic with you at github.com/polterguy/magic/discussions
Quality
Each projects in Aista Magic Cloud is statically analysed for code issues using SonarCloud. This ensures high quality code, and helps us stabilise the platform as a whole. Each time we create a new release, we verify the build status of each project in the platform, ensuring we don’t accidentally implement bugs, somehow breaking the platform. This process includes running unit tests automatically as we push code towards Magic’s GitHub repository, analysing the code to verify it’s not unnecessary complex, and make sure the code is DRY, implying it does not repeat itself and follows all best practices.
If you want to dive into the QA details of each project, you can find Magic’s SonarCloud page at sonarcloud.io/organizations/polterguy/projects?sort=-coverage.
License
Magic is 100% Open Source and free of charge to use. The main backend is licensed as MIT, the dashboard is GPL, and the plugins are LGPL. This allows you to use Magic to create closed source applications, while also ensuring improvements to the project itself stays Open Source.