Skip to content

feat: add Rust CLI implementation [very fast]#162

Merged
MaojiaSheng merged 23 commits intovolcengine:mainfrom
ZaynJarvis:feat/rust-cli
Feb 14, 2026
Merged

feat: add Rust CLI implementation [very fast]#162
MaojiaSheng merged 23 commits intovolcengine:mainfrom
ZaynJarvis:feat/rust-cli

Conversation

@ZaynJarvis
Copy link
Collaborator

@ZaynJarvis ZaynJarvis commented Feb 13, 2026

WIP: Rust CLI Implementation

This PR adds a Rust CLI implementation for OpenViking with significantly improved startup performance.

Key Features:

  • ~5ms startup time (vs ~200-500ms for Python)
  • Complete command coverage (22+ commands)
  • Built with clap + reqwest + tokio
  • Workspace structure at crates/openviking-cli/

Commands Implemented:

  • Content: read, abstract, overview
  • Search: find, search, grep, glob
  • Filesystem: ls, tree, mkdir, rm, mv, stat
  • Resources, Relations, Pack, System, Observer, Session subcommands

Build & Test:

cargo check
cargo build --release

Binary size: 3.4MB

This is a work-in-progress implementation for feedback and discussion.

- GitHub Actions workflow for Linux/macOS/Windows builds
- install.sh script with platform detection and checksum verification
- README updated with Rust CLI installation instructions
- Build badges and platform support documentation
- Rename build.yml to rust-cli.yml to avoid conflicts
- Add path filters to trigger only on Rust file changes
- Integrate Rust build into existing PR workflow
- Fix cross-compilation setup for ARM64 Linux
- Fix checksum generation for macOS compatibility
- Add proper environment variables for cross-compilation
ZaynJarvis and others added 16 commits February 13, 2026 19:33
- Switch reqwest to use rustls-tls instead of native-tls for better portability
- Add pkg-config and libssl-dev installation for Linux builds as fallback
- Eliminates openssl-sys dependency issues on Ubuntu runners
- Add serde defaults for url and output fields to handle missing config values
- Add new 'config init' command to initialize configuration properly
- Make configuration backward compatible with existing configs
- Provide better error messages and initialization flow for users
- Remove comfy-table dependency (unused, causing build issues with Rust 1.87)
- Fix error handling to properly handle null error field in API responses
- Update Cargo.toml to remove unused dependency
- Client now correctly parses responses from OpenViking server

Tested: openviking-cli ls / works correctly with remote server
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
- Change repository from volcengine/OpenViking to zaynjarvis/openviking
- Fix SKIP_CHECKSUM environment variable documentation
- Add validation to detect 'Not Found' checksum files and skip gracefully
@ZaynJarvis
Copy link
Collaborator Author

GitHub Build Actions doesn't work in volcengine repo.

@ZaynJarvis ZaynJarvis changed the title [WIP] Add Rust CLI implementation feat: add Rust CLI implementation [very fast] Feb 13, 2026
@ZaynJarvis
Copy link
Collaborator Author

@ZaynJarvis
Copy link
Collaborator Author

alignment improved

  1. preserve json order
  2. calc width based on unicode
  3. set max width for column, but for uri, since full url is critical, allow overflow

@MaojiaSheng MaojiaSheng merged commit 44032c9 into volcengine:main Feb 14, 2026
11 checks passed
@github-project-automation github-project-automation bot moved this from Backlog to Done in OpenViking project Feb 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants