FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Mcp by afeldman · Pull Request #7190 · rethinkdb/rethinkdb · GitHub

Mcp - #7190

Open
afeldman wants to merge 24 commits into
rethinkdb:mainfrom
afeldman:mcp
Open

Mcp#7190
afeldman wants to merge 24 commits into
rethinkdb:mainfrom
afeldman:mcp

Conversation

afeldman commented Mar 3, 2026
edited by gabor-boros
Loading

Copy link
Copy Markdown

Description

<Please fill in the description of your pull request here. Thank you for your contribution!>

Checklist

srh and others added 24 commits October 27, 2025 12:17
This is perhaps a 'hack' to get package building working on plucky

Signed-off-by: Sam Hughes
Signed-off-by: Sam Hughes
This updates the version number to v2.4.5.

Signed-off-by: Sam Hughes
- Add root CMakeLists.txt with Conan integration
- Add conanfile.py and conanfile.txt for dependency management
- Add src/CMakeLists.txt as placeholder for source compilation
- Add BUILD.md with comprehensive build instructions
- Add .gitignore.cmake for CMake/Conan generated files

Dependencies managed by Conan:
- protobuf 3.21.12
- openssl 3.2.0
- zlib 1.3.1
- libcurl 8.5.0
- re2 20231101
- jemalloc 5.3.0
- gtest 1.14.0 (optional)

Features:
- Cross-platform build support (Linux, macOS, FreeBSD)
- Automatic dependency resolution and building
- ccache support for faster rebuilds
- Configurable build options (jemalloc, testing, static linking)
- Modern CMake best practices
- Fix make_optional template to return correct optional<decay_t<T>> type
- Update all make_optional() calls to be compatible with C++17
- Replace make_optional calls with direct optional<T> construction where needed
- Use custom make_optional implementation instead of std::make_optional

This fixes compilation errors where std::make_optional returns
optional<decay_t<T>> which was incompatible with the custom optional<T> class.

Note: QuickJS dependency is still missing and needs to be added separately.
- Document modern CMake-based build process
- Include Conan dependency management setup
- List build requirements and tools
- Provide quick start commands for users
- Link to detailed BUILD.md documentation

This update improves documentation for developers wanting to build
RethinkDB on various platforms using the new CMake infrastructure.
## Build System Improvements
- Add quickjs package dependency to CMakeLists.txt
- Correct CMake target linking (quickjs::quickjs)
- Update src/CMakeLists.txt with proper target configuration

## C++17 Compatibility Fixes
- Replace deprecated std::random_shuffle with std::shuffle
- Fix rapidjson Value string constructor calls (add length parameter)
- Fix re2::StringPiece to std::string conversions
- Replace non-existent as_string() with proper string construction

## Optional Type System Corrections
- Fix make_optional function definition in optional.hpp
- Remove redundant using rethinkdb::optional declarations
- Replace rethinkdb::optional with proper optional wrapper
- Fix boost::variant initialization with proper constructors
- Resolve optional<optional> type nesting issues

## Protocol Buffer and Variant Fixes
- Add explicit initialization for boost::variant change_t
- Use std::forward for proper rvalue reference handling
- Fix raft_core comparison logic with optional values

All changes ensure compatibility with C++17, modern Boost versions,
and cross-platform CMake builds on macOS, Linux, and other systems.
User-specific CMake presets should not be version controlled.
Each developer can generate presets locally as needed using:
  cmake --preset conan-release
- Document assignment_sentry.hpp with RAII guard details
- Document do_on_thread.hpp with thread execution API
- Document random.hpp with RNG utilities
- Document math.hpp with alignment and mathematical functions
- Update CMakeLists.txt project version
- Update conanfile.py version
- NOTES.md already contains v2.4.5 release information
- Document TLS macros with design rationale
- Document DEFINE_TLS_REF_ACCESSORS and DEFINE_TLS_ACCESSORS
- Document TLS(), TLS_with_get_ref(), and TLS_with_init() macros
- Document coroutine-based and standard C++17 implementations
- Document type trait compatibility macros
- Document stl_utils.hpp with STL container helpers
- Document memory_utils.hpp with aligned allocation functions
- Document time.hpp with time measurement utilities
- Document timestamps.hpp with state timestamp management
- Document repli_timestamp.hpp with replication timestamps
- Change logWRN(error_message.c_str()) to logWRN("%s", error_message.c_str())
- Prevents format-string injection vulnerability
- Eliminates Clang -Wformat-security warning
Adds a production-grade Go MCP server as a companion service to RethinkDB.
The C++ source is completely untouched.

Architecture:
- Transport layer: stdio (Claude Desktop) + HTTP+SSE (multi-client)
- Auth bridge: mirrors RethinkDB SCRAM-SHA-256 via gorethink driver
- Tool registry: 10 tools across 3 categories

Tools implemented:
  Introspection: list_databases, list_tables, describe_table
  CRUD:          query_reql, insert_document, update_document, delete_document
  Streaming:     subscribe_table_changes, subscribe_query_changes, unsubscribe

Streaming uses native RethinkDB changefeeds via gorethink cursors.
Each subscription runs in a dedicated goroutine with context cancellation.

Package dependency graph (no circular imports):
  auth → gorethink
  tools → auth, gorethink   (owns ToolDefinition/CallToolResult)
  protocol → tools, auth, transport
  main → all

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: anton feldmann <anton.feldmann@gmail.com>
Signed-off-by: anton feldmann <anton.feldmann@gmail.com>
Signed-off-by: anton feldmann <anton.feldmann@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
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.

2 participants


Back | FazBrowse Home | New Git URL