Skip to content

refactor: migrate from Go to Rust implementation#212

Open
Yuukadesu wants to merge 107 commits intomainfrom
rust-fs
Open

refactor: migrate from Go to Rust implementation#212
Yuukadesu wants to merge 107 commits intomainfrom
rust-fs

Conversation

@Yuukadesu
Copy link
Collaborator

No description provided.

@luoluoyuyu
Copy link
Collaborator

Are there any usage documents explaining how to create functions and how to trigger them?

I ran into the following error while using the CLI:

error: unexpected argument '--host' found

Usage: cli [OPTIONS]

For more information, try '--help'.

Could you help take a look at this?

The issue has been fixed.

@RobertIndie RobertIndie requested a review from Copilot February 28, 2026 13:41
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates the project’s primary implementation from the legacy Go codebase to a Rust-based workspace, while also refreshing packaging, documentation, and example processors.

Changes:

  • Removed Go-based server/operator/runtime implementation, CI, tooling, and related SDK/helpers.
  • Added Rust workspace (server + CLI) plus container packaging, compose environment, and updated configuration.
  • Introduced new examples (Python processor + Go WASM processor) and expanded end-user documentation.

Reviewed changes

Copilot reviewed 140 out of 452 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
operator/PROJECT Removed Kubebuilder project scaffolding metadata as part of dropping the Go operator implementation.
operator/Dockerfile Removed Go-based operator container build.
operator/DEVELOPER.md Removed Go operator developer guide.
operator/.golangci.yml Removed Go linter configuration for the operator.
operator/.gitignore Removed Go-specific ignore rules for the operator subtree.
operator/.github/workflows/test.yml Removed Go operator unit test workflow.
operator/.github/workflows/test-e2e.yml Removed Go operator e2e workflow.
operator/.github/workflows/lint.yml Removed Go operator lint workflow.
operator/.dockerignore Removed operator dockerignore (Go-era).
operator/.devcontainer/post-install.sh Removed Go/Kubebuilder devcontainer post-install tooling.
operator/.devcontainer/devcontainer.json Removed Go-based devcontainer configuration.
license-checker/license-header.txt Removed legacy license header template (C/Go style).
license-checker/license-header-sh.txt Removed legacy license header template (shell style).
license-checker/license-header-md.txt Removed legacy license header template (markdown style).
license-checker/license-checker.sh Removed legacy license checking script tied to Go repo layout.
functions/example-functions.yaml Removed legacy function example YAML (Go-era layout/paths).
fs/statestore/pebble_test.go Removed Go Pebble state store tests as Go runtime is removed.
fs/statestore/pebble.go Removed Go Pebble-based state store implementation.
fs/runtime/wazero/wazero_runtime.go Removed Go wazero runtime implementation.
fs/runtime/wazero/fs.go Removed wazero in-memory FS shim used by the Go runtime.
fs/runtime/external/model/fs.proto Removed Go external runtime proto model definition used by Go client/runtime.
fs/package/package_loader.go Removed Go package loader for WASM archive configuration.
fs/manager_test.go Removed Go manager tests tied to legacy runtime config selection.
fs/instance_impl_test.go Removed Go function instance context tests.
fs/instance_impl.go Removed Go function instance implementation (select loop, lifecycle).
fs/func_ctx_impl_test.go Removed Go function context tests.
fs/func_ctx_impl.go Removed Go function context implementation (state access + emit).
fs/contube/pulsar.go Removed Go Pulsar tube implementation.
fs/contube/nats.go Removed Go NATS tube implementation.
fs/contube/memory_test.go Removed Go in-memory tube tests.
fs/contube/memory.go Removed Go in-memory tube implementation.
fs/contube/http_test.go Removed Go HTTP tube tests.
fs/contube/http.go Removed Go HTTP tube implementation.
fs/contube/contube.go Removed Go tube abstractions (Record/TubeFactory/config helpers).
fs/api/statestore.go Removed Go statestore API interfaces.
fs/api/runtime.go Removed Go runtime API interfaces.
fs/api/package.go Removed Go package API interfaces.
fs/api/instance.go Removed Go function instance API interfaces.
fs/api/func_ctx.go Removed Go function context API interfaces.
examples/python-processor/serializer.py Added Python processor serialization helper (cloudpickle-based).
examples/python-processor/processor_impl.py Added example Python CounterProcessor implementation.
examples/python-processor/main.py Added example Python registration CLI using Python client.
examples/python-processor/config.yaml Added YAML task config for the Python processor example.
examples/go-processor/main.go Added Go WASM component-model processor example implementation.
examples/go-processor/go.mod Added module file for Go processor example build.
examples/go-processor/config.yaml Added YAML task config for the Go processor example.
examples/go-processor/build.sh Added build script for Go processor example (WIT + TinyGo).
examples/examples-validator/Cargo.toml Added a Rust utility crate for validating examples (Kafka test).
examples/basic/main.go Removed legacy Go example using gofs client.
docs/sql-cli-guide.md Added English SQL CLI guide for the new Rust CLI.
docs/sql-cli-guide-zh.md Added Chinese SQL CLI guide for the new Rust CLI.
docs/server-configuration.md Added English server configuration reference for the new system.
docs/server-configuration-zh.md Added Chinese server configuration reference.
docs/python-sdk-guide.md Added English Python SDK guide for Python development/management flow.
docs/function-development.md Added English function development guide (WASM Go example + SQL/Python mgmt).
docs/function-development-zh.md Added Chinese function development guide.
docs/function-configuration.md Added English function YAML configuration reference.
docs/function-configuration-zh.md Added Chinese function YAML configuration reference.
docker-compose.yml Added local dev stack (function-stream + Kafka) for integration/testing.
conf/config.yaml Added server configuration file (logging/runtime/storage settings).
common/wasm_utils/wasm_utils.go Removed Go WASM pointer utilities no longer used after migration.
common/utils.go Removed Go shared utilities (namespaced name, log helpers, etc.).
common/signal.go Removed Go signal handling helper (WaitUntilSignal).
common/model/function_serde_test.go Removed Go model serde tests.
common/model/function.go Removed Go Function model definition.
common/log.go Removed Go logger wrapper.
common/errors.go Removed Go shared error constants.
common/constants.go Removed Go constant definitions (runtime/tube types).
common/config/config.go Removed Go config map helpers.
common/chan_utils_test.go Removed Go channel utility tests.
common/chan_utils.go Removed Go channel utilities.
common/buffer_writter_test.go Removed Go buffer writer tests.
common/buffer_writter.go Removed Go buffer writer implementation.
common/buffer_reader_test.go Removed Go buffer reader tests.
common/buffer_reader.go Removed Go buffer reader implementation.
cmd/server/cmd.go Removed legacy Go server CLI entrypoint.
cmd/perf/cmd.go Removed legacy Go perf CLI entrypoint.
cmd/main.go Removed legacy Go root command entrypoint.
cmd/client/reload/cmd.go Removed legacy Go admin client command (reload).
cmd/client/produce/cmd.go Removed legacy Go admin client command (produce).
cmd/client/list/cmd.go Removed legacy Go admin client command (list).
cmd/client/delete/cmd.go Removed legacy Go admin client command (delete placeholder).
cmd/client/create/cmd.go Removed legacy Go admin client command (create).
cmd/client/consume/cmd.go Removed legacy Go admin client command (consume).
cmd/client/common/config.go Removed legacy Go client config holder.
cmd/client/cmd.go Removed legacy Go client root command.
clients/gofs/gofs_wasmfs.go Removed Go WASI bridge for gofs runtime.
clients/gofs/gofs_socket.go Removed Go socket/gRPC bridge client for gofs runtime.
clients/gofs/api.go Removed legacy Go gofs API definitions/helpers.
cli/cli/src/main.rs Added Rust CLI entrypoint (REPL wiring + clap args).
cli/cli/Cargo.toml Added Rust CLI crate manifest.
benchmark/bench_test.go Removed Go benchmark suite tied to previous runtime/tubes.
admin/utils/utils.go Removed Go admin convenience helpers for tube configs.
admin/client/response.go Removed generated Go OpenAPI client code.
admin/client/model_restfulspec_schema_type.go Removed generated Go OpenAPI models.
admin/client/model_model_tube_config.go Removed generated Go OpenAPI models.
admin/client/model_model_runtime_config.go Removed generated Go OpenAPI models.
admin/client/docs/RestfulspecSchemaType.md Removed generated Go OpenAPI docs.
admin/client/docs/ModelTubeConfig.md Removed generated Go OpenAPI docs.
admin/client/docs/ModelRuntimeConfig.md Removed generated Go OpenAPI docs.
admin/client/docs/ModelFunction.md Removed generated Go OpenAPI docs.
admin/client/api_status.go Removed generated Go OpenAPI client endpoints.
admin/client/api_http_tube.go Removed generated Go OpenAPI client endpoints.
admin/client/api_function_store.go Removed generated Go OpenAPI client endpoints.
admin/client/README.md Removed generated Go OpenAPI client README.
admin/client/.gitignore Removed generated Go OpenAPI client gitignore.
Dockerfile Added Rust-based multi-stage container build + runtime image packaging.
Cargo.toml Added Rust workspace + core crate dependencies/features.
CHANGELOG.md Removed legacy changelog file (Go-era release history).
.golangci.yml Removed root Go linter configuration (repo no longer Go-first).
.github/workflows/verify-package.yml Added Rust/Python build, lint, test, and packaging verification workflow.
.github/workflows/ci.yaml Removed legacy Go-centric CI workflow.
.dockerignore Added dockerignore tuned for Rust build context.
.codacy.yml Added Codacy configuration to exclude generated/build artifacts and examples.
.chglog/config.yml Removed legacy changelog generator config.
.chglog/CHANGELOG.tpl.md Removed legacy changelog template.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants