MCPcopy Create free account
hub / github.com/chigraph/chigraph

github.com/chigraph/chigraph @v1.0.0a

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.0.0a ↗ · + Follow
736 symbols 1,886 edges 223 files 227 documented · 31% updated 2y agocontinuous · 2017-04-06★ 44028 open issues

Browse by type

Functions 622 Types & classes 114
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

chigraph logo

Coveralls Gitter

Build Status

Platform Status
Linux/macOS
Windows

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 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: russellgreene8@gmail.com

Authors

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

Technology used

Written with StackEdit.

Core symbols most depended-on inside this repo

Shape

Method 350
Function 272
Class 106
Enum 8

Languages

C++82%
TypeScript18%
C1%

Modules by API surface

libchigraph/include/chi/json.hpp229 symbols
docs/jquery.js65 symbols
libchigraph/src/LangModule.cpp58 symbols
libchigraph/src/GraphModule.cpp49 symbols
libchigraph/src/GraphFunction.cpp33 symbols
docs/navtree.js28 symbols
libchigraph/include/chi/Fwd.hpp25 symbols
libchigraph/src/Context.cpp19 symbols
docs/svgpan.js16 symbols
libchigraphdebugger/src/Debugger.cpp12 symbols
libchigraph/src/NodeType.cpp10 symbols
libchigraph/include/chi/DataType.hpp10 symbols

For agents

$ claude mcp add chigraph \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page