Usage of Go in APISIX #12459
-
Hello, I am trying to tweak some things in apisix source code. Though APISIX is mainly based on Lua, I have found that there are some languages like Go and Typescript etc. After investigating the codes I have come to an understanding that Go is only used for testing purposes in APISIX. I built the source code in VS Code Dev Container. Now my question is if I want to develop on APISIX, is it enough to make changes in the Lua files only? Or will I need to rebuild the Go codes if I go deeper on the implementations? Is there any document that I can go through to understand this? I am concerned about this, because I want to understand how I should prepare my development environment. Thanks in Advance. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
Hi @nitolpalak! I'm Dosu and I’m helping the apisix team. For core APISIX development, you only need to work with the Lua files—Go is not required unless you specifically want to develop plugins in Go using the Go Plugin Runner. The Go code in the APISIX repo is mainly for auxiliary tools and testing, not for runtime or core features, so you don't need to rebuild any Go binaries for typical development tasks. If you're interested in Go plugin development, check out the Go Plugin Runner developer guide and this blog post explaining how Go plugins work with APISIX. For most development, the Dev Containers setup is sufficient and doesn't require Go. Let me know if you want details on Go plugin development or have other questions about the environment! To reply, just mention @dosu. How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other |
Beta Was this translation helpful? Give feedback.
Hi @nitolpalak! I'm Dosu and I’m helping the apisix team.
For core APISIX development, you only need to work with the Lua files—Go is not required unless you specifically want to develop plugins in Go using the Go Plugin Runner. The Go code in the APISIX repo is mainly for auxiliary tools and testing, not for runtime or core features, so you don't need to rebuild any Go binaries for typical development tasks.
If you're interested in Go plugin development, check out the Go Plugin Runner developer guide and this blog post explaining how Go plugins work with APISIX. For most development, the Dev Containers setup is sufficient and doesn't require Go.
Let me know if you want details on Go plu…