Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/chigraph/chigraph
A visual systems language for beginners compiled using LLVM
https://github.com/chigraph/chigraph
chigraph dataflow dataflow-programming language language-learning learn-to-code llvm
Last synced: 1 day ago
JSON representation
A visual systems language for beginners compiled using LLVM
- Host: GitHub
- URL: https://github.com/chigraph/chigraph
- Owner: chigraph
- License: apache-2.0
- Created: 2016-06-09T13:27:37.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2023-09-26T02:46:38.000Z (over 1 year ago)
- Last Synced: 2025-01-26T10:05:56.308Z (9 days ago)
- Topics: chigraph, dataflow, dataflow-programming, language, language-learning, learn-to-code, llvm
- Language: C++
- Homepage: https://chigraph.io
- Size: 63.5 MB
- Stars: 409
- Watchers: 32
- Forks: 72
- Open Issues: 29
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
***DISCLAIMER: CHIGRAPH IS IN PRE-PRE-PRE-PRE ALPHA STATUS AND MAY NEVER REACH A STABLE RELEASE. IT'S A TOY PROJECT AS A PROOF OF CONCEPT.***
![chigraph logo](doc/images/chigraph.png)
[![Coveralls](https://img.shields.io/coveralls/chigraph/chigraph.svg?style=flat-square)](https://coveralls.io/github/chigraph/chigraph) [![Gitter](https://img.shields.io/gitter/room/nwjs/nw.js.svg?style=flat-square)](https://gitter.im/chigraph/)
__Build Status__
Platform | Status
----- | ----
| Linux/macOS | [![Travis branch](https://img.shields.io/travis/chigraph/chigraph/master.svg?style=flat-square)](https://travis-ci.org/chigraph/chigraph) |
| Windows | [![AppVeyor](https://img.shields.io/appveyor/ci/guapotaco/chigraph-miekk.svg?style=flat-square)](https://ci.appveyor.com/project/GuapoTaco/chigraph-miekk) |
| Buildbot (in development) | [Buildbot](https://ci.chigraph.io/) |# What is chigraph?
Chigraph, pronunced chai-graph, is a new systems programming language. It's fast. It's scalable. And, more importantly, it's easy to learn. How does it achieve such goals? By scrapping the age-old standard of text (not entirely though). Here's a screenshot from [the Qt5 GUI](https://github.com/chigraph/chigraph-gui):![Screenshot](doc/screenshots/HelloWorld.png)
> **NOTE**
> This is the repository for the chigraph language. If you are looking for the interface that goes along with it, see https://github.com/chigraph/chigraph-gui# Components
Chigraph is made up of three components:## chi
chi is the command line interface to chigraph. It lets you compile and run chigraph modules:
```bash
$ pwd
~/chigrpah/src/
$ chi get github.com/russelltg/hellochigraph/hello/main # download it
$ cd github.com/russelltg/hellochigraph/hello/main
$ chi run main.chimod # run it
Hello World!
```## libchigraph
libchigraph is the chigraph library that provides all functions for chigraph clients, like code generation, graph representation, etc. Want to compile a chigraph module using libchigraph? ([documentation](https://chigraph.github.io/chigraph/))```C++
#includeint main() {
chi::Contxt myContext{"/path/to/workspace"};// download and load the module
myContxt.loadModule("github.com/russelltg/hellochigraph/hello/main", chi::LoadOptions::FetchDependencies);// compile it
llvm::Module* mod;
myContxt.compileModule("github.com/russelltg/hellochigraph", &mod);
}
```And tada, you have yourself a [`llvm::Module`](http://llvm.org/docs/doxygen/html/classllvm_1_1Module.html) to do whatever you wish to. It'll have all it's dependencies linked in and a main function waiting to run.
## libchigraphdebugger
libchigraphdebugger is a library that makes it easy to implement chigraph debuggers. See [the `Debugger` documentation](https://chigraph.github.io/chigraph/classchi_1_1Debugger.html) for more details.# Licensing
It's free!
Chigraph is licensed under the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0) so anyone can use it for free, even in proprietary settings (solong you attribute me)# API Documentation
API Documentation (generated by [doxygen](http://doxygen.org)) can be found [here](https://api.chigraph.io/).# Installation
## Download installers/appimage
Installers and appimages are avaliable from the [releases page](https://github.com/chigraph/chigraph/releases) (coming soon) for those who don't want to build from sources.## Building from source
See the [guide on building from source](doc/building.md)# Get Involved
Getting involved is easy!
If you don't know where to get started, start looking at [filed github issues](https://github.com/chigraph/chigraph/issues) for inspiration. Then just file a PR!If you have any questions, you're more than welcome to email me: [[email protected]](mailto:[email protected])
# Authors
- Russell Greene (@russelltg) - Main contributor
- Aun-Ali Zaidi (@aunali1) - Helped with some platform stuff, packaging# Technology used
- [LLVM/Clang](http://llvm.org) for compilation
- [libgit2](https://libgit2.github.com/) for downloading remote modules
- [Catch](https://github.com/philsquared/Catch/) for unit tests
- [boost](https://boost.org) for [filesystem](http://www.boost.org/doc/libs/1_63_0/libs/filesystem/doc/index.htm), [parsing program arguments](http://www.boost.org/doc/libs/1_63_0/doc/html/program_options.html), [uuid](http://www.boost.org/doc/libs/1_63_0/libs/uuid/uuid.html), [bimap](http://www.boost.org/doc/libs/1_63_0/libs/bimap/doc/html/index.html), [range](http://www.boost.org/doc/libs/1_63_0/libs/range/doc/html/index.html), [dynamic_bitset](http://www.boost.org/doc/libs/1_63_0/libs/dynamic_bitset/dynamic_bitset.html)> Written with [StackEdit](https://stackedit.io/).