Skip to content

Conversation

@amotl
Copy link
Member

@amotl amotl commented Nov 3, 2025

@amotl amotl added the new content New content being added. label Nov 3, 2025
@coderabbitai
Copy link

coderabbitai bot commented Nov 3, 2025

Walkthrough

Adds documentation for connecting to CrateDB from Raku using the Protocol::Postgres driver. Creates a new Raku driver page with example code and installation instructions, and updates the drivers index to include the new Raku entry.

Changes

Cohort / File(s) Change Summary
Drivers index update
docs/connect/index.md
Adds Raku driver card entry to the "Drivers by language" grid with metadata and image; updates language index links to include raku/index
New Raku driver documentation
docs/connect/raku/index.md
Creates new documentation page with visual header, Protocol::Postgres overview, synopsis with sample Raku code demonstrating async socket connection and query execution, and installation/execution instructions

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Verify the new Raku documentation page follows the established template structure consistent with other driver pages
  • Check that example code is syntactically correct and demonstrates proper CrateDB connection patterns
  • Confirm the index entry is correctly formatted and linked in the drivers grid

Possibly related PRs

Suggested labels

cross linking

Suggested reviewers

  • seut
  • matriv

Poem

🐰 A Raku driver hops into the docs,
With async sockets and Protocol::Postgres rocks,
The connect index now shows the way,
To query CrateDB—hip hip hooray! 📚✨

Pre-merge checks and finishing touches

✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and accurately describes the main change: adding a new documentation page for the Raku driver.
Description check ✅ Passed The description is related to the changeset, though minimal. It references the title and provides a preview link to the new Raku documentation page.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch raku

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 940f077 and 0bcc77a.

📒 Files selected for processing (2)
  • docs/connect/index.md (2 hunks)
  • docs/connect/raku/index.md (1 hunks)
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: amotl
Repo: crate/cratedb-guide PR: 385
File: docs/connect/java.md:48-51
Timestamp: 2025-10-08T01:34:18.867Z
Learning: CrateDB JDBC driver uses the `jdbc:crate://` protocol scheme but communicates via the PostgreSQL wire protocol on port 5432, just like the PostgreSQL JDBC driver (`jdbc:postgresql://`). Do not confuse the `jdbc:crate://` scheme with other protocol schemes like `crate://` (used by SQLAlchemy dialect for CrateDB) or assume it uses the HTTP endpoint on port 4200.
Learnt from: amotl
Repo: crate/cratedb-guide PR: 408
File: docs/connect/elixir.md:18-22
Timestamp: 2025-10-16T10:58:18.401Z
Learning: When connecting to CrateDB using PostgreSQL-compatible drivers like Postgrex (Elixir), the `database` parameter handling may differ from standard PostgreSQL usage because CrateDB has no notion of databases like PostgreSQL does. CrateDB uses schemas to separate concerns instead. The `database` parameter might need to be omitted or handled differently to avoid connection issues.
📚 Learning: 2025-10-08T01:34:18.867Z
Learnt from: amotl
Repo: crate/cratedb-guide PR: 385
File: docs/connect/java.md:48-51
Timestamp: 2025-10-08T01:34:18.867Z
Learning: CrateDB JDBC driver uses the `jdbc:crate://` protocol scheme but communicates via the PostgreSQL wire protocol on port 5432, just like the PostgreSQL JDBC driver (`jdbc:postgresql://`). Do not confuse the `jdbc:crate://` scheme with other protocol schemes like `crate://` (used by SQLAlchemy dialect for CrateDB) or assume it uses the HTTP endpoint on port 4200.

Applied to files:

  • docs/connect/raku/index.md
📚 Learning: 2025-10-16T10:58:18.401Z
Learnt from: amotl
Repo: crate/cratedb-guide PR: 408
File: docs/connect/elixir.md:18-22
Timestamp: 2025-10-16T10:58:18.401Z
Learning: When connecting to CrateDB using PostgreSQL-compatible drivers like Postgrex (Elixir), the `database` parameter handling may differ from standard PostgreSQL usage because CrateDB has no notion of databases like PostgreSQL does. CrateDB uses schemas to separate concerns instead. The `database` parameter might need to be omitted or handled differently to avoid connection issues.

Applied to files:

  • docs/connect/raku/index.md
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Build docs
🔇 Additional comments (4)
docs/connect/index.md (1)

149-160: Index updates follow established patterns.

The new Raku entry is properly positioned alphabetically in both the grid and toctree, uses the official Camelia mascot icon, and follows the established markup conventions for driver entries.

Also applies to: 274-274

docs/connect/raku/index.md (3)

30-34: Verify database parameter handling for CrateDB.

The code passes database="crate" to the startup() method. Based on prior learnings, CrateDB doesn't have the concept of "databases" like PostgreSQL—it uses schemas instead. The database parameter may need to be omitted or handled differently to avoid connection issues. Please verify this works correctly with Protocol::Postgres and CrateDB, or clarify in the documentation if special handling is required.

Consider adding a note in the "About" section explaining CrateDB's use of schemas instead of databases if the database parameter behavior differs from standard PostgreSQL.

Also applies to: 41-41


56-56: Include file path is correct and verified.

The file docs/connect/_cratedb.md exists and the relative path ../_cratedb.md from docs/connect/raku/index.md correctly resolves to it. The include directive is valid.


20-20: All library details verified as accurate.

Protocol::Postgres (latest version 0.0.13, released June 6, 2025) is correctly identified. The library is a sans-io PostgreSQL client available on Raku Land at https://raku.land/zef:leont/Protocol::Postgres. The documentation references at lines 20, 59, and 64 are all current and accurate. No changes needed.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@bmunkholm bmunkholm left a comment

Choose a reason for hiding this comment

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

I don't think we need to should add this (and similar minority languages) with their own page.
See comments https://github.com/crate/tech-content/issues/124#issuecomment-3484870195.

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

Labels

new content New content being added.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants