- Hardcharger
- Integrações
Integrações do Hardcharger™
Drivers para Python, Go, Java e JavaScript, um cliente de linha de comando e uma interface web, um servidor MCP para o Claude, dbt, DataFrames no estilo PySpark e replicação a partir de outros bancos de dados. Todos falam Warp SQL, então os resultados chegam em Apache Arrow, e todos são Apache-2.0.
Ir para uma integração
Cada item é um link direto que pode ser compartilhado. Categorias: Drivers · Ferramentas · IA e agentes · Transformação · DataFrames · Carga de dados · Clientes SQL.
- Driver para Python, Go e ADBCDrivers01
- Driver JDBCDrivers02
- Cliente JavaScript e TypeScriptDrivers03
- Cliente de linha de comando hardchargerFerramentas04
- Interface webFerramentas05
- Servidor MCP do Hardcharger™IA e agentes06
- dbt-hardchargerTransformação07
- SQLFrame para o HardchargerDataFrames08
- adbc-replicate-hardchargerCarga de dados09
- DBeaverClientes SQL10
Driver para Python, Go e ADBC
adbc-driver-hardcharger: consulte o Hardcharger a partir de Python, Go, C/C++, R, Rust ou qualquer linguagem ADBC.
Um driver nativo em Go, construído sobre o driver ADBC do Warp SQL e compilado em uma única biblioteca compartilhada que toda linguagem ADBC carrega. O Python ganha uma interface DB-API 2.0 com resultados em Arrow; programas em Go o importam diretamente; C/C++, R e Rust o carregam por meio de um gerenciador de drivers ADBC como driver = "hardcharger".
Sobre o Warp SQL, ele acrescenta o que é específico do Hardcharger: URIs hardcharger://, tags de consulta e de sessão, configurações hardcharger.*, login pelo navegador (SSO) e login por certificado de cliente. Por padrão, resultados grandes são lidos por várias conexões ao mesmo tempo e as ingestões em massa são enviadas em partes paralelas.
O que oferece
- URIs hardcharger://, porta 31337 por padrão, TLS por padrão (?tls=false para HTTP simples)
- Parâmetros de bind e resultados em Arrow de ponta a ponta
- Ingestão em massa (adbc_ingest) em partes paralelas, tudo ou nada
- Senha, token, login pelo navegador (auth_type="external") e mTLS
- Leituras particionadas e lz4/zstd escolhidos a partir da latência de ida e volta do link
- Pacote Go github.com/gizmodata/hardcharger-adbc/go/v2/hardcharger
pip install adbc-driver-hardcharger
# Go
go get github.com/gizmodata/hardcharger-adbc/go/v21from adbc_driver_hardcharger import dbapi as hardcharger
2
3with hardcharger.connect(uri="hardcharger://localhost?tls=false", username="hardcharger", password="change-me") as conn:
4 with conn.cursor() as cur:
5 cur.execute(operation="SELECT 42 AS answer, ? AS greeting", parameters=["hello"])
6 print(cur.fetch_arrow_table())Python 3.11 ou posterior. pip install "hardcharger[adbc]" também instala o pacote Python do servidor.
Driver JDBC
hardcharger-jdbc: o Hardcharger para aplicações Java, DBeaver e outras ferramentas JDBC, em um único jar.
Um único jar independente para Java 17 e posterior, sem gRPC, Netty nem protobuf dentro: URLs jdbc:hardcharger://host[:port] sobre o driver JDBC do Warp SQL. Ele se apresenta como “Hardcharger JDBC Driver” às ferramentas que mostram esse nome, e o DatabaseMetaData informa o servidor como Hardcharger.
O que oferece
- URLs jdbc:hardcharger://, porta 31337 por padrão
- TLS por padrão (useEncryption=false para HTTP simples)
- Leituras particionadas (resultPartitions, 8 por padrão)
- Login por senha, token e mTLS
- Classe do driver com.gizmodata.hardcharger.jdbc.HardchargerDriver
<dependency>
<groupId>com.gizmodata</groupId>
<artifactId>hardcharger-jdbc</artifactId>
<version><!-- the release version --></version>
</dependency>Properties properties = new Properties();
properties.setProperty("user", "hardcharger");
properties.setProperty("password", "change-me");
properties.setProperty("useEncryption", "false"); // plain HTTP on localhost
try (Connection connection = DriverManager.getConnection("jdbc:hardcharger://localhost", properties);
ResultSet rows = connection.createStatement().executeQuery("SELECT 42 AS answer")) {
rows.next();
System.out.println(rows.getInt("answer"));
}Java 17 ou posterior. A ingestão em massa não tem API JDBC; use o driver ADBC para cargas.
Cliente JavaScript e TypeScript
@gizmodata/hardcharger: URLs hardcharger:// na entrada, Arrow na saída, no Node, em navegadores, no Deno, no Bun e no Cloudflare Workers.
Uma camada fina sobre o @gizmodata/warp-sql, o cliente JavaScript genérico para qualquer servidor Warp SQL, que ele reexporta. fetch simples e Apache Arrow JS, sem código nativo e sem gRPC, então o mesmo código roda em um servidor, em uma página no navegador (permita a origem dela com --cors-origins) ou na borda.
O que oferece
- Tabelas Arrow JS, ou streams de record batches para resultados grandes
- Parâmetros de bind, transações e ingestão em massa
- Resultados divididos entre várias conexões (8 no Node, 4 em navegadores)
- Cancelamento com um AbortSignal
- Login por senha, token e mTLS
npm install @gizmodata/hardcharger apache-arrowimport { connect } from "@gizmodata/hardcharger";
const conn = await connect({ url: "hardcharger://localhost?tls=false", username: "hardcharger", password: "change-me" });
const table = await conn.query("SELECT 42 AS answer, ? AS greeting", ["hello"]);
console.log(table.toArray().map((row) => row.toJSON()));
await conn.close();Node 22.19 ou posterior; apache-arrow é uma dependência peer.
Cliente de linha de comando hardcharger
Um shell SQL interativo e uma ferramenta de scripts, incluídos em todo servidor.
O hardcharger vem ao lado do hardcharger-server em todo tarball, MSI e imagem de contêiner. Execute-o sem instrução para um shell interativo com histórico, autocompletar com tab, realce de sintaxe e paginador, ou passe uma instrução, um arquivo ou um heredoc para scripts: o status de saída é 1 quando uma instrução falha.
O que oferece
- Saída em tabelas, CSV, JSON ou Markdown
- Ctrl-C cancela a instrução em execução e mantém o shell
- Resultados grandes lidos por até 8 conexões, em ordem
- Login pelo navegador (--auth-type external) e certificados de cliente
- URIs hardcharger:// com as regras do driver Python
Interface web
Um editor SQL, grade de resultados, navegador de esquemas e upload de arquivos, integrados ao servidor.
Inicie o servidor com --web-ui e abra /ui na própria porta e no próprio certificado dele. Cada aba do editor é uma sessão própria; o navegador de esquemas e o autocompletar mostram a cada usuário apenas o que os papéis dele permitem; Upload data carrega arquivos CSV, TSV, Excel, Parquet, JSON ou Arrow em uma tabela; e a página API mostra a API Warp SQL do servidor no Swagger UI.
O que oferece
- Até 20 abas de editor, scripts com uma aba de resultado por conjunto de resultados
- Grade de resultados de até um milhão de linhas, cópia para Excel ou Google Sheets
- Upload data com prévia e tipos de coluna editáveis
- Downloads em CSV, TSV, JSON, Excel, Parquet ou Arrow
- Login por SSO e por certificado
Servidor MCP do Hardcharger™
Explore e consulte o Hardcharger a partir do Claude Desktop, do Claude Code e de qualquer cliente MCP.
Um servidor Model Context Protocol e extensão do Claude Desktop, a adaptação para o Hardcharger do servidor MCP do GizmoSQL. O Claude lista catálogos, esquemas e tabelas, descreve colunas, explica planos e executa SQL somente leitura em um servidor Hardcharger que você consiga acessar, e ele pode atender uma equipe via Streamable HTTP protegido por OAuth.
O que oferece
- Somente leitura por padrão; gravações apenas quando você as permite
- Login por senha, token, mTLS e navegador
- Várias conexões, alternáveis em uma mesma conversa
- Um conector remoto via Streamable HTTP com OAuth 2.1
- JavaScript puro, construído sobre o @gizmodata/hardcharger
claude mcp add hardcharger \
-e HARDCHARGER_URI='hardcharger://localhost?tls=false' \
-e HARDCHARGER_USERNAME=hardcharger \
-e HARDCHARGER_PASSWORD=change-me \
-- npx -y @gizmodata/hardcharger-mcpNode 22.19 ou posterior para o npx. Claude Desktop: instale o hardcharger-mcp.mcpb a partir das versões publicadas, sem precisar de Node.
dbt-hardcharger
Construa o seu projeto dbt no Hardcharger: DuckDB 2.0 remoto, via Warp SQL.
O adaptador dbt para o Hardcharger, a adaptação do dbt-gizmosql, que passa na mesma suíte de testes de adaptadores dbt. Ele se conecta pelo adbc-driver-hardcharger, então os modelos rodam no servidor e os seeds são carregados pelo próprio leitor de CSV do DuckDB.
O que oferece
- Todas as materializações, inclusive incremental (append, delete+insert, merge, microbatch) e snapshots
- Modelos Python, executados localmente no DuckDB e carregados em massa
- Arquivos externos gravados pelo servidor
- Catálogos DuckLake, restrições aplicadas, persist_docs
- Login por senha, token, mTLS e navegador
pip install dbt-hardchargershop:
target: dev
outputs:
dev:
type: hardcharger
host: localhost
port: 31337
user: hardcharger
password: "{{ env_var('HARDCHARGER_PASSWORD') }}"
tls: false # a local server without TLS
database: demo
schema: main
threads: 4dbt-core 1.12, Python 3.11 ou posterior. A configuração grants ainda não é aplicada; use GRANT em um post-hook.
SQLFrame para o Hardcharger
Execute o seu código de DataFrame do PySpark no Hardcharger, sem cluster Spark.
O backend do Hardcharger para o SQLFrame: transformações no estilo PySpark viram SQL do DuckDB que roda no servidor, então jobs de Spark e Databricks migram trocando o construtor da sessão. activate() permite que imports de pyspark sem alterações rodem no Hardcharger.
O que oferece
- A API de DataFrame do PySpark, mais activate() para imports sem alterações
- Carga em massa com session.ingest()
- spark.read.json / csv / parquet locais no cliente
- Todos os métodos de login
- Traces do OpenTelemetry
pip install sqlframe-hardcharger1from sqlframe_hardcharger import HardchargerSession, functions as F
2
3spark = HardchargerSession.builder.config(map={
4 "hardcharger.uri": "hardcharger://localhost?tls=false",
5 "hardcharger.username": "hardcharger",
6 "hardcharger.password": "change-me",
7}).getOrCreate()
8
9spark.table("nation").groupBy("n_regionkey").agg(F.count("*").alias("nations")).show()Python 3.11 ou posterior. UDFs em Python não podem rodar no servidor.
adbc-replicate-hardcharger
Copie esquemas inteiros do Oracle, PostgreSQL, Snowflake, DuckDB ou de outro Hardcharger, de forma agendada.
Replicação de ADBC para ADBC no Hardcharger, guiada por configuração. Liste em um arquivo YAML os esquemas, as tabelas e as visões a copiar; ele os transmite como Arrow, mascara colunas dentro da origem, lê todas as tabelas no mesmo instante, copia apenas o que mudou nas execuções seguintes e traduz visões para SQL do DuckDB. Execute-o pela linha de comando, pela imagem de contêiner ou por um CronJob do Helm.
O que oferece
- Máscaras avaliadas dentro da origem: os valores brutos nunca saem dela
- Snapshots consistentes e detecção de mudanças por fingerprint
- Visões traduzidas com sqlglot
- Trocas paralelas e atômicas por tabela e um log de execuções no destino
- Imagem de contêiner e chart do Helm
pip install "adbc-replicate-hardcharger[all]" # or [oracle], [postgresql], [snowflake], [duckdb]version: 1
name: shop-to-hardcharger
source:
type: duckdb
path: ./shop.duckdb
target:
type: hardcharger
uri: hardcharger://localhost?tls=false
username: hardcharger
password: ${HARDCHARGER_PASSWORD}
objects:
- db_schemas: [sales]
columns:
- tables: [sales.customers]
mask:
ssn: hash
parallelism: 2Execute com adbc-replicate-hardcharger run --config replicate.yaml (também plan, validate e test-connection). Python 3.11 ou posterior.
DBeaver
Navegue e consulte o Hardcharger no DBeaver por meio do driver JDBC.
Adicione o jar JDBC do Hardcharger no Driver Manager do DBeaver e conecte-se com URLs jdbc:hardcharger://. O suporte integrado ao Hardcharger no DBeaver está a caminho; até lá, a configuração manual leva um minuto.
O que oferece
- Classe do driver com.gizmodata.hardcharger.jdbc.HardchargerDriver
- Modelo de URL jdbc:hardcharger://{host}[:{port}][/{database}]
- Porta padrão 31337
- useEncryption=false para um servidor local sem TLS
Por qual driver do Hardcharger devo começar?
Para Python, Go, R, Rust ou C/C++, use o driver ADBC (pip install adbc-driver-hardcharger). Para Java e ferramentas JDBC como o DBeaver, use o hardcharger-jdbc. Para Node, navegadores, Deno, Bun e Cloudflare Workers, use o @gizmodata/hardcharger. Para um shell, use o cliente hardcharger que vem com o servidor.
Os drivers do GizmoSQL funcionam com o Hardcharger?
Não. O GizmoSQL fala Arrow Flight SQL sobre gRPC; o Hardcharger fala Warp SQL sobre HTTP. Os principais têm equivalentes no Hardcharger: adbc-driver-gizmosql → adbc-driver-hardcharger, o driver JDBC do GizmoSQL → hardcharger-jdbc, dbt-gizmosql → dbt-hardcharger, o servidor MCP do GizmoSQL → hardcharger-mcp, o backend GizmoSQL do SQLFrame → sqlframe-hardcharger e adbc-replicate → adbc-replicate-hardcharger. O guia de migração em docs.hardcharger.gizmodata.com(abre em uma nova aba) explica a mudança.
Posso chamar o Hardcharger sem um driver?
Sim. O Warp SQL é HTTP simples: obtenha um token, abra uma sessão e envie uma instrução com o curl ou qualquer biblioteca HTTP, e peça Accept: application/vnd.apache.arrow.stream para receber as linhas como um stream Arrow IPC. Todo servidor publica sua descrição OpenAPI 3.1 em /warp/v1/openapi.json.
Quais integrações suportam SSO?
O driver ADBC (e, portanto, o dbt-hardcharger e o SQLFrame), o servidor MCP, o cliente de linha de comando hardcharger e a interface web podem entrar pelo login via navegador do próprio servidor, com o seu provedor OpenID Connect. O driver JDBC faz login com senha, token ou certificado de cliente.
As integrações são de código aberto?
Sim. Todos os drivers e integrações desta página são publicados pela GizmoData sob a licença Apache-2.0.