All Projects → chigraph → Chigraph

chigraph / Chigraph

Licence: apache-2.0
A visual systems language for beginners compiled using LLVM

Programming Languages

language
365 projects

Projects that are alternatives of or similar to Chigraph

Raftlib
The RaftLib C++ library, streaming/dataflow concurrency via C++ iostream-like operators
Stars: ✭ 717 (+190.28%)
Mutual labels:  dataflow, dataflow-programming
joern
Open-source code analysis platform for C/C++/Java/Binary/Javascript/Python/Kotlin based on code property graphs
Stars: ✭ 968 (+291.9%)
Mutual labels:  llvm, dataflow
Dnai.Editor
Dnai Editor - Visual Scripting (Node Editor)
Stars: ✭ 117 (-52.63%)
Mutual labels:  dataflow, dataflow-programming
act
ACT hardware description language and core tools.
Stars: ✭ 53 (-78.54%)
Mutual labels:  dataflow, dataflow-programming
flowd
An inter-language runtime for flow-based programming (FBP)
Stars: ✭ 18 (-92.71%)
Mutual labels:  dataflow, dataflow-programming
DFiant
DFiant: A Dataflow Hardware Descripition Language
Stars: ✭ 21 (-91.5%)
Mutual labels:  dataflow, dataflow-programming
dspatch
The Refreshingly Simple Cross-Platform C++ Dataflow / Pipelining / Stream Processing / Reactive Programming Framework
Stars: ✭ 124 (-49.8%)
Mutual labels:  dataflow, dataflow-programming
Nipype
Workflows and interfaces for neuroimaging packages
Stars: ✭ 557 (+125.51%)
Mutual labels:  dataflow, dataflow-programming
Drawflow
Simple flow library 🖥️🖱️
Stars: ✭ 730 (+195.55%)
Mutual labels:  dataflow, dataflow-programming
30 Seconds Of Php
Short PHP code snippets for all your development needs
Stars: ✭ 2,461 (+896.36%)
Mutual labels:  learn-to-code
30 Seconds Of Css
Short CSS code snippets for all your development needs
Stars: ✭ 14,945 (+5950.61%)
Mutual labels:  learn-to-code
Jfs
Constraint solver based on coverage-guided fuzzing
Stars: ✭ 215 (-12.96%)
Mutual labels:  llvm
Python Awesome
Learn Python, Easy to learn, Awesome
Stars: ✭ 219 (-11.34%)
Mutual labels:  learn-to-code
Ts Llvm
TypeScript to LLVM compiler (abandoned)
Stars: ✭ 230 (-6.88%)
Mutual labels:  llvm
Pythonflow
🐍 Dataflow programming for python.
Stars: ✭ 215 (-12.96%)
Mutual labels:  dataflow
Weld
High-performance runtime for data analytics applications
Stars: ✭ 2,709 (+996.76%)
Mutual labels:  llvm
Symbiotic
Symbiotic is a tool for finding bugs in computer programs based on instrumentation, program slicing and KLEE
Stars: ✭ 212 (-14.17%)
Mutual labels:  llvm
Pure Lang
Pure programming language
Stars: ✭ 209 (-15.38%)
Mutual labels:  llvm
Cracking The Coding Interview Rust
Cracking the Coding Interview problem solutions in Rust
Stars: ✭ 246 (-0.4%)
Mutual labels:  learn-to-code
Pothoscore
The Pothos data-flow framework
Stars: ✭ 232 (-6.07%)
Mutual labels:  dataflow

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

Coveralls Gitter

Build Status

Platform Status
Linux/macOS Travis branch
Windows AppVeyor
Buildbot (in development) Buildbot

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:

Screenshot

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:

$ 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)

#include <chi/Context.hpp>

int 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 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 for more details.

Licensing

It's free! Chigraph is licensed under the Apache 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) can be found here.

Installation

Download installers/appimage

Installers and appimages are avaliable from the releases page (coming soon) for those who don't want to build from sources.

Building from source

See the guide on building from source

Get Involved

Getting involved is easy! If you don't know where to get started, start looking at filed github issues for inspiration. Then just file a PR!

If you have any questions, you're more than welcome to email me: [email protected]

Authors

  • Russell Greene (@russelltg) - Main contributor
  • Aun-Ali Zaidi (@aunali1) - Helped with some platform stuff, packaging

Technology used

Written with StackEdit.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].