Skip to content

cloudwego/abcoder

Repository files navigation

ABCoder: AI-Based Coder(AKA: A Brand-new Coder)

ABCoder

Overview

ABCoder, an general AI-oriented code-processing SDK, is designed to enhance coding context for Large-Language-Model (LLM), and boost developing AI-assisted-programming applications.

Features

  • Universal Abstract-Syntax-Tree (UniAST), an language-independent, AI-friendly specification of code information, providing a boundless, flexible and structrual coding context for both AI and hunman.

  • General Parser, parses abitary-language codes to UniAST.

  • General Writer, transforms UniAST back to codes.

  • (Comming Soon) General Iterator, a framework for visiting the UniAST and implementing code-batch-processing workflows.

  • (Comming Soon) Code Retrieval-Augmented-Generation (RAG), provides a set of tools and functions to help the LLM understand your codes much deeper than ever.

Based on these features, developers can easily implement or enhance their AI-assisted-programming applications, such as reviewing, optimizing, translating, etc.

Universal Abstract-Syntax-Tree Specification

see UniAST Specification

Getting Started

  1. Install ABCoder:
go install github.com/cloudwego/abcoder@latest
  1. Use ABCoder to parse a repository to UniAST (JSON)
abcoder parse {language} {repo-path} > ast.json
  1. Do your magic with UniAST...
  2. Use ABCoder to write an UniAST back to codes
abcoder write {language} ast.json

Supported Languages

ABCoder currently supports the following languages:

Language Parser Writer
Go
Rust Coming Soon
C Coming Soon
Python Coming Soon

Getting Involved

We encourage developers to contribute and make this tool more powerful. If you are interested in contributing to ABCoder project, kindly check out our guide:

Note: This is a dynamic README and is subject to changes as the project evolves.

About

A set of LLM coding context enhancement solutions.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Contributors 6