# chigraph **Repository Path**: Zr_Cpp/chigraph ## Basic Information - **Project Name**: chigraph - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-03-15 - **Last Updated**: 2021-03-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## 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++ #include 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`](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: [russellgreene8@gmail.com](mailto:russellgreene8@gmail.com) # 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/).