Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/blade-lang/blade
A modern general-purpose programming language focused on enterprise Web, IoT, and secure application development.
https://github.com/blade-lang/blade
blade compiler interpreter language programming-language
Last synced: about 1 month ago
JSON representation
A modern general-purpose programming language focused on enterprise Web, IoT, and secure application development.
- Host: GitHub
- URL: https://github.com/blade-lang/blade
- Owner: blade-lang
- License: other
- Created: 2021-01-20T16:09:05.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-02-23T06:06:55.000Z (10 months ago)
- Last Synced: 2024-04-13T21:12:04.212Z (8 months ago)
- Topics: blade, compiler, interpreter, language, programming-language
- Language: C
- Homepage: https://bladelang.com
- Size: 21.5 MB
- Stars: 160
- Watchers: 8
- Forks: 11
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-programming-languages - Blade - Blade is a simple, clean, and embeddable dynamic programming language created to be simple enough for beginners, yet powerful and expressive for professionals. It has a very small syntax set with a very low learning curve. Blade improves upon the best features of JavaScript, Python, and Ruby to give developers a familiar and powerful system that feels native for developers coming from any of these languages and an easy way to leverage the strength of any. (Uncategorized / Uncategorized)
- awesome-repositories - blade-lang/blade - A modern general-purpose programming language focused on enterprise Web, IoT, and secure application development. (Blade)
README
# Blade Programming Language
[![Build Status](https://github.com/blade-lang/blade/actions/workflows/ci.yml/badge.svg)](https://github.com/blade-lang/blade/actions)
[![Gitter](https://badges.gitter.im/blade-lang/community.svg)](https://gitter.im/blade-lang/community)
[![License](https://img.shields.io/badge/License-BSDL-blue.svg)](https://github.com/blade-lang/blade/blob/master/LICENSE)
[![Coverage Status](https://coveralls.io/repos/github/blade-lang/blade/badge.svg?branch=main)](https://coveralls.io/github/blade-lang/blade?branch=main)
[![Version](https://img.shields.io/badge/version-0.0.86-green)](https://github.com/blade-lang/blade)Blade is a modern general-purpose programming language focused on enterprise Web, IoT, and secure application development. Blade offers a comprehensive set of tools and libraries out of the box leading to reduced reliance on third-party packages.
Blade comes equipped with an integrated package management system, simplifying the management of both internal and external dependencies and a self-hostable repository server making it ideal for private organizational and personal use. Its intuitive syntax and gentle learning curve ensure an accessible experience for developers of all skill levels. Leveraging the best features from JavaScript, Python, Ruby, and Dart, Blade provides a familiar and robust ecosystem that enables developers to harness the strengths of these languages effortlessly.
## Example
The following code implements a simple backend API that runs on port 3000:
```js
import httpvar server = http.server(3000)
server.handle('GET', '/', @(req, res) {
res.json(req)
})echo 'Listening on Port 3000...'
server.listen()
```## What's interesting about Blade
- **Built-in package manager and repository server:** Package management is built into the language module system. Blade also comes with `Nyssa`. Nyssa is a package manager and self-hosted repository server highly suitable for private use.
- **Zero-dependency full-stack web development**: Blade comes with a built-in web server and a rich set of tools and libraries that support it, making it easy to build composable full-stack web applications out of the box:
- Built-in Model-View-Template (MVT) based HTTP web server.
- Built-in testing framework.
- Built-in support for multiple databases.
- Built-in web template engine — `Wire`.
- Built-in routing library.
- Built-in mail library with SMTP, IMAP, and POP3 support.
- Built-in device integrations (such as support for COM/Ports, USB, etc.) — Planned!
- Built-in cryptography library.
- Built-in support for media processing (Image - Done, audio, video, etc.) — Planned!
- And more.
- **Function promotion**: A feature of the Blade language that makes it easy to reuse any code from an imported module.
- **Access modifiers**: Unlike JavaScript and Python, Blade supports access modifiers for variables, properties, functions, classes, modules, etc.
- **Decorator functions**: Decorator functions are a set of class methods in Blade that makes extending the functionality of existing code super easy.
- **Easy to extend with C modules**: Blade supports external extensions built in C with a built-in extension compiler via `Nyssa`. This feature makes it easy to extend language features with C modules.## Showcase of other uses
While Blade focuses on Web and IoT, it is also great for general software development. Below are a few showcases of libraries using Blade for other impressive stuff:
- **[jsonrpc](https://github.com/mcfriend99/jsonrpc)**: A JSON-RPC library for Blade programming language.
- **[tar](https://github.com/mcfriend99/tar)**: Pure Blade library for creating and extracting TAR archives.## Installation
To install Blade, please follow the instructions in the [Building](./BUILDING.md) guide.
## Usage
To start using Blade, please refer to the [Tutorial](https://bladelang.org/tutorial/index.html) section of the online documentation.
## API Documentation
API documentation for Blade is under active development and can be found at [bladelang.org](https://bladelang.org/standard/index.html).
## Community
- Join the conversation on [Gitter](https://gitter.im/blade-lang/community)
- Submit a [feature request](https://github.com/blade-lang/blade/issues/new?labels=feature-request) or [bug report](https://github.com/blade-lang/blade/issues/new?labels=bug).## Contributing
We need your help to make Blade great! The Blade community is as friendly and welcoming as possible. All kinds of contributions like pull requests, suggestions, typo fixes in documentation, feature request, bug reports, and others are highly appreciated. Please refer to the [Contributing](./CONTRIBUTING.md) guide for more information.
## License
Blade is licensed under the [2-clause BSDL License](https://github.com/blade-lang/blade/blob/master/LICENSE).