feat: Add Python bindings for ArcadeDB embedded database#2737
Merged
Conversation
Introduce comprehensive Python bindings that enable embedded ArcadeDB usage directly from Python applications, leveraging JPype for seamless JVM integration. Core Features: - Embedded database operations with full CRUD support - Document, vertex, and edge models for graph databases - Transaction management (read, write, batch operations) - Server mode with HTTP API support - Vector search capabilities for AI/ML applications - Data import from CSV/JSONL with automatic type inference - Export to GraphML, GraphSON, JSONL, and CSV formats - Gremlin query language support - Async execution and batch processing utilities Development Infrastructure: - Multi-platform build system (Linux, macOS, Windows on x64/ARM64) - Native build scripts with JRE bundling - Docker-based build environment - Comprehensive test suite with 100+ tests covering: * Core database operations * Concurrency and transactions * Import/export functionality * Server patterns and API * Type conversions and result handling - CI/CD workflows for automated testing across all platforms - Testing for examples 01-03 (verified working) Examples: - Simple document store with CRUD operations - Social network graph modeling and traversal - Vector similarity search - CSV import with MovieLens dataset (examples 04-05 included but not CI-tested yet) Build System: - Platform-specific wheel generation - JAR exclusion filtering for minimal distributions - Version extraction from parent pom.xml - Setup utilities for streamlined installation This implementation provides a Pythonic interface to ArcadeDB while maintaining compatibility with the Java API and supporting all major platforms.
… build tools are installed
Contributor
🧪 CI InsightsHere's what we observed from your CI run for 20ca31d. 🟢 All jobs passed!But CI Insights is watching 👀 |
Contributor
|
Warning Gemini encountered an error creating the summary. You can try again by commenting |
…ain permissions Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
…ain permissions Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Collaborator
Author
|
/gemini summary |
Contributor
Summary of ChangesThis pull request significantly expands ArcadeDB's ecosystem by introducing a robust set of Python bindings. These bindings allow Python developers to leverage ArcadeDB's multi-model capabilities, including document, graph, and vector database features, directly within their applications without requiring a separate Java installation. The changes encompass not only the core API but also a comprehensive build system, extensive testing, and practical examples to facilitate adoption and development across various platforms. Highlights
Changelog
Ignored Files
Activity
|
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
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Introduce comprehensive Python bindings that enable embedded ArcadeDB usage directly from Python applications, leveraging JPype for seamless JVM integration.
Core Features:
Development Infrastructure:
Examples:
Build System:
This implementation provides a Pythonic interface to ArcadeDB while maintaining compatibility with the Java API and supporting all major platforms.## What does this PR do?
A brief description of the change being made with this pull request.
Motivation
What inspired you to submit this pull request?
Related issues
A list of issues either fixed, containing architectural discussions, otherwise relevant
for this Pull Request.
Additional Notes
Anything else we should know when reviewing?
Checklist
mvn clean packagecommand