Skip to content

loganzartman/caveql

Repository files navigation

caveql

parses and executes a tiny subset of splunk SPL on in-memory data.

usable via browser UI, CLI, and library import.

this is a toy project for fun

sample query

usage

web

try it!

CLI

npx caveql --help

run a query on a file:

npx caveql -i ./sample/population.json "usa | stats max(value)"

run a query not on a file:

npx caveql "| makeresults count=10 | streamstats count as x | eval y=x*x"

library

pnpm add caveql
import { parseQuery, compileQuery } from "caveql";

const parsed = parseQuery("usa | stats max(value)");
const run = compileQuery(parsed.ast);

const result = run([
  { country: "usa", value: 100 },
  { country: "can", value: 200 },
]);

for (const record of result) {
  console.log(record);
}

development

setup:

  1. install nvm
  2. switch node version: nvm install
  3. enable corepack: corepack enable
  4. install dependencies: pnpm i

build: pnpm build

dev server: pnpm dev

About

toy non-distributed splunk clone

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages