Welcome to GOX
Welcome to the official documentation for GOX.
GOX is an ecosystem comprising a programming language, an official server implementation, and the tools you need to build full-stack web applications.
This documentation describes the capabilities of the GOX ecosystem and explains how to use them.
GOX ecosystem capabilities
GOX provides a set of tools designed to work in an integrated way during the development of web applications.
Programming language
The GOX language is the core of the ecosystem.
Its main features include:
- A compiled language inspired by JSX.
- A module system inspired by ECMAScript.
- Compatibility with Go packages.
- Reusable functional components.
- An integrated template system.
→ Language
HTTP server
Official implementation of the server is gox-server.
Its main capabilities include:
- Filesystem-based routing.
- Static file serving.
- An integrated session system.
- Built-in rate limiting.
- Communication over WebSockets.
→ Server
Client applications
GOX allows to integrate developed client applications with different JavaScript ecosystem frameworks.
It currently offers support for:
- React
- Preact
- SolidJS
- Vue
- Svelte
Scalability
GOX takes advantage of the concurrent model provided by Go to run applications efficiently and allows to distribute an application between multiple instances of gox-server.
For distributed scenarios, GOX provides official implementation redisadapter.
Distributed infrastructure
The official implementation of redisadapter allows several instances of gox-server function as a single logical server.
Its capabilities include:
- Sessions distributed.
- WebSockets distributed.
- Communication between the gox-server.
redisadapter co-ordinates the gox-server, but does not automatically distribute HTTP traffic between them. To direct requests to different instances, a load swimmer, an inverse proxy or an equivalent solution should be used.
Testing
GOX provides an integrated system for page and action testing.
→ Testing
GOX and gox-server
It is important to distinguish between GOX and its official implementation from the server.
GOX
GOX is an ecosystem comprising a programming language, an official server implementation, and the tools you need to build full-stack web applications.
gox-server
gox-server is the official implementation of the server for GOX.
Proporciona:
- The compiler.
- The execution environment.
- The command
gox. - The HTTP server.
In this documentation the name gox-server It shall only be used when it is necessary to refer specifically to the server.
Supported platforms
Currently gox-server offers support for:
- Linux
- macOS
- Windows, WSL
Windows is not supported in a native way due to a limitation of the Go plugin system used by gox-server to load dynamically compiled modules.
This limitation belongs to Go and not to the GOX language.
Documentation structure
The documentation is organized in the following sections:
- Installation
- Getting started
- Language
- Concepts
- Configuration
- CLI
- Server
- Client applications
- Scalability
- Infrastructure
- Testing
- API
Where to start
If this is the first time you have used GOX, it is recommended to follow the documentation in this order:
- Installation
- Quick Start
- Your first page
- Project structure
- Language
- Templates
- Configuration
- CLI
- Server
- Client applications
- Scalability
- Infrastructure
- Testing
- API
Conventions
The following conventions shall be used throughout this documentation:
- GOX refers to the ecosystem.
- The GOX language refers to the programming language.
- gox-server refers to the official implementation of the server.
redisadapterrefers to the official implementation for the distributed operation.goxrefers to the command used from the terminal.- File names, directories, commands and options are displayed using single-spaced format.