# goplus/xgo

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/goplus-xgo).**

9,436 stars · 567 forks · Go · Apache-2.0

## Links

- GitHub: https://github.com/goplus/xgo
- Homepage: https://xgo.dev
- awesome-repositories: https://awesome-repositories.com/repository/goplus-xgo.md

## Topics

`ai-native` `data-science` `golang` `goplus` `low-code` `programming-language` `scientific-computing` `stem` `stem-education` `xgo`

## Description

Xgo is a programming language that combines familiar constructs from languages like C/C++, Go, Python, and JavaScript with a natural language-style syntax that reads closer to plain English. It executes programs compatible with the Go language, allowing reuse of existing Go libraries and tooling, and supports mixing Go and XGo source files within a single package for gradual adoption of its simplified syntax.

The language distinguishes itself through direct foreign function interface capabilities, enabling calls to C/C++ and Python libraries using specialized string literal syntax without manual binding code. It also supports shell script execution using structured programming syntax, file-based routing for web applications where filenames determine HTTP method and path, and event-driven 2D game development with actors responding to start and broadcast events. XGo provides a dedicated HTML DOM query language for data processing, and organizes code into packages and functions following Go-style conventions.

XGo covers standard programming fundamentals including variable declaration and initialization, array operations, complex number arithmetic, custom data structure definitions, and error handling through explicit return values and custom error types. It supports object-oriented programming through type and interface composition, closure variable capture, deferred cleanup operations, and capitalization-based visibility control for package-level identifiers.

## Tags

### Artificial Intelligence & ML

- [English-Like Syntax Languages](https://awesome-repositories.com/f/artificial-intelligence-ml/natural-language-programming-environments/english-like-syntax-languages.md) — Defines a programming language with natural language-style syntax that reads closer to plain English.

### Data & Databases

- [Data Structure Definitions](https://awesome-repositories.com/f/data-databases/data-structure-definitions.md) — Creates structured data types like structs, arrays, slices, and maps to organize information. ([source](https://tutorial.xgo.dev/))
- [Array Element Accessors](https://awesome-repositories.com/f/data-databases/immutable-array-updates/array-element-modifiers/array-element-accessors.md) — Supports reading and writing array elements by index using bracket notation. ([source](https://tutorial.xgo.dev/arrays))

### Development Tools & Productivity

- [Go-Python Bridges](https://awesome-repositories.com/f/development-tools-productivity/python-library-integrations/go-python-bridges.md) — Provides a string-literal syntax for directly calling Python functions from Go code. ([source](https://cdn.jsdelivr.net/gh/goplus/xgo@main/README.md))
- [Structured Shell Execution](https://awesome-repositories.com/f/development-tools-productivity/shell-script-execution-engines/structured-shell-execution.md) — Runs shell commands and scripts using structured XGo syntax without requiring a module file. ([source](https://cdn.jsdelivr.net/gh/goplus/xgo@main/README.md))

### Education & Learning Resources

- [Programming Fundamentals](https://awesome-repositories.com/f/education-learning-resources/programming-fundamentals.md) — Writes programs that execute statements sequentially, covering variables, control flow, and basic data types. ([source](https://tutorial.xgo.dev/))

### Programming Languages & Runtimes

- [Native Library Invocations](https://awesome-repositories.com/f/programming-languages-runtimes/c-based-embedding-apis/go-c-bridges/native-library-invocations.md) — Ships a string-literal syntax for directly calling C/C++ functions from Go code. ([source](https://cdn.jsdelivr.net/gh/goplus/xgo@main/README.md))
- [Go-Compatible Language Runtimes](https://awesome-repositories.com/f/programming-languages-runtimes/go-language-implementations/go-compatible-language-runtimes.md) — Executes programs compatible with the Go language, enabling reuse of existing Go libraries and tooling. ([source](https://tutorial.xgo.dev/))
- [Direct Multi-Language FFI Calls](https://awesome-repositories.com/f/programming-languages-runtimes/language-interoperability/foreign-function-interfaces/native-library-integrations/c-library-bindings/multi-language-bindings/direct-multi-language-ffi-calls.md) — Provides direct foreign function interface to C/C++, Python, and JavaScript libraries without manual bindings.
- [Familiar Programming Constructs](https://awesome-repositories.com/f/programming-languages-runtimes/programming-utilities/language-learning-resources/c-programming-resources/c-programming-mastery/go-programming-mastery/familiar-programming-constructs.md) — XGo uses common programming constructs like loops, conditionals, functions, and data structures that mirror those in C/C++, Go, Python, and JavaScript. ([source](https://tutorial.xgo.dev/))
- [Cross-Language FFI Bridges](https://awesome-repositories.com/f/programming-languages-runtimes/python-c-bindings/cross-language-ffi-bridges.md) — Provides direct foreign function interface to C/C++ and Python libraries using specialized string literal syntax. ([source](https://cdn.jsdelivr.net/gh/goplus/xgo@main/README.md))
- [Structured Program Writing](https://awesome-repositories.com/f/programming-languages-runtimes/smart-contract-languages/on-chain-program-writing-with-dsl/structured-program-writing.md) — XGo organizes code into reusable functions, methods, and interfaces with error handling and type abstraction. ([source](https://tutorial.xgo.dev/))
- [Visibility Access Controls](https://awesome-repositories.com/f/programming-languages-runtimes/variable-name-manglers/visibility-access-controls.md) — Controls package-level identifier visibility using capitalization conventions for exported and private names. ([source](https://tutorial.xgo.dev/encapsulation))
- [Error](https://awesome-repositories.com/f/programming-languages-runtimes/block-value-returns/method-return-values/return-value-transformers/return-values/error.md) — Returns errors as an explicit separate return value alongside the result for visible error handling. ([source](https://tutorial.xgo.dev/errors))
- [Structured Shell Scripting Languages](https://awesome-repositories.com/f/programming-languages-runtimes/go-shell-scripting-frameworks/structured-shell-scripting-languages.md) — Ships a structured programming language syntax for writing shell commands and scripts.
- [Type and Interface Extensions](https://awesome-repositories.com/f/programming-languages-runtimes/interface-and-any-types/type-and-interface-extensions.md) — Combines types through struct embedding and defines contracts with interfaces for flexible, reusable code. ([source](https://tutorial.xgo.dev/))
- [Variable Type Declarations](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/type-system-tools/type-definitions/variable-type-declarations.md) — Declares boolean variables that default to false when no value is assigned. ([source](https://tutorial.xgo.dev/booleans))
- [Fixed-Length Declarations](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/type-system-tools/type-definitions/variable-type-declarations/array-declaration-styles/fixed-length-declarations.md) — Declares fixed-length arrays with a predetermined size and uniform type, defaulting to zero values. ([source](https://tutorial.xgo.dev/arrays))
- [Closure Captures](https://awesome-repositories.com/f/programming-languages-runtimes/local-variable-captures/closure-captures.md) — Captures variables from enclosing scopes so each closure instance retains and can modify its own copy. ([source](https://tutorial.xgo.dev/closures))
- [Multidimensional Arrays](https://awesome-repositories.com/f/programming-languages-runtimes/multidimensional-arrays.md) — Composes one-dimensional array types to create multidimensional data structures. ([source](https://tutorial.xgo.dev/arrays))
- [In-Place Value Swaps](https://awesome-repositories.com/f/programming-languages-runtimes/place-and-value-semantics/in-place-value-swaps.md) — Exchanges values of two or more variables in one line without a temporary variable. ([source](https://tutorial.xgo.dev/assignments))
- [Runtime Exception Handling](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-exception-handling.md) — Manages runtime problems using error returns and exception handling to keep programs robust. ([source](https://tutorial.xgo.dev/))
- [Variable Assignments](https://awesome-repositories.com/f/programming-languages-runtimes/variable-assignments.md) — Assigns values to existing variables using the = operator with single or multiple simultaneous assignments. ([source](https://tutorial.xgo.dev/assignments))

### Software Engineering & Architecture

- [Package-Based Code Organization](https://awesome-repositories.com/f/software-engineering-architecture/package-based-code-organization.md) — Organizes code into packages and functions using Go-style syntax for modular development. ([source](https://tutorial.xgo.dev/hello-world))
- [Mixed Go and XGo Source Files](https://awesome-repositories.com/f/software-engineering-architecture/static-type-checkers/python-type-checkers/gradual-typing-adoption/mixed-go-and-xgo-source-files.md) — Enables incremental adoption of XGo syntax by mixing Go and XGo source files in the same package.
- [Short Variable Declarations](https://awesome-repositories.com/f/software-engineering-architecture/variable-declaration-formatting/short-variable-declarations.md) — Declares and initializes variables in a single statement using the := operator. ([source](https://tutorial.xgo.dev/assignments))

### Content Management & Publishing

- [File-Based Routing](https://awesome-repositories.com/f/content-management-publishing/file-based-routing.md) — Defines HTTP routes by mapping filenames to methods and paths in YAP files. ([source](https://cdn.jsdelivr.net/gh/goplus/xgo@main/README.md))

### Game Development

- [Event-Driven Actor Games](https://awesome-repositories.com/f/game-development/2d-game-development-foundations/event-driven-actor-games.md) — Enables event-driven 2D game development with actors responding to start and broadcast events. ([source](https://cdn.jsdelivr.net/gh/goplus/xgo@main/README.md))
- [Event-Driven Actor Systems](https://awesome-repositories.com/f/game-development/2d-game-development-foundations/event-driven-actor-systems.md) — Builds interactive 2D games where sprites respond to start and broadcast events.

### Operating Systems & Systems Programming

- [Component Extractions](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-object-reconstruction/complex-number-constant-reconstructions/component-extractions.md) — Provides built-in functions to retrieve the real and imaginary components of complex numbers. ([source](https://tutorial.xgo.dev/complex-numbers))
- [Standard Output Printing](https://awesome-repositories.com/f/operating-systems-systems-programming/standard-i-o-bridges/standard-output-printing.md) — Implements standard output printing with a command-style syntax without parentheses. ([source](https://tutorial.xgo.dev/hello-world))

### Scientific & Mathematical Computing

- [Complex Arithmetic Primitives](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/arithmetic-number-types/multiplication-algorithms/number-theory-algorithms/complex-arithmetic-primitives.md) — Supports addition, subtraction, multiplication, and division of complex numbers using standard operators. ([source](https://tutorial.xgo.dev/complex-numbers))

### Web Development

- [DOM Query Languages](https://awesome-repositories.com/f/web-development/html-dom-manipulators/dom-query-languages.md) — Provides a dedicated HTML DOM query language for data processing within XGo. ([source](https://cdn.jsdelivr.net/gh/goplus/xgo@main/README.md))
