Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions ls/editors/code/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 24 additions & 0 deletions playground/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
1 change: 1 addition & 0 deletions playground/.nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
22.22.1
64 changes: 64 additions & 0 deletions playground/README.MD
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# YARA-X Playground

This folder contains the browser playground for YARA-X. The goal of the
playground is to provide a lightweight web interface for writing, formatting,
and eventually testing YARA rules directly in the browser.

The current version is `0.0.0`. At this stage, the focus is on establishing the
front-end foundation of the playground:

- TypeScript for the application code
- Lit for the UI
- Vite for development and builds
- Monaco-based editor integration for the rule and sample panes

This version is intentionally limited. It is expected to compile and provide
the basic UI structure, but it is not expected to be fully functional end to
end yet.

## Requirements

- Node `22.22.1`
- `pnpm`

The Node version is pinned in [`.nvmrc`](./.nvmrc).

## Getting started

```bash
nvm use
pnpm install
pnpm dev
```

This starts the Vite development server. Open the local URL printed in the
terminal.

## Scripts

```bash
pnpm dev
pnpm build
pnpm preview
pnpm format
```

## Project status

At the moment, this folder contains:

- the application shell and layout
- the editor setup
- the styling and interaction base
- the first browser-facing service contracts for the engine and the language
server

What is still missing:

- a working browser engine integration
- a working browser language server integration
- the final packaging strategy for browser artifacts
- deployment workflows

The intention is to connect those pieces once the browser packages are ready
and their public interfaces are stable.
22 changes: 22 additions & 0 deletions playground/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Jost:wght@400;500;600;700;800&display=swap"
/>
<link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<link rel="shortcut icon" href="/favicon.ico" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>YARA Playground</title>
<script type="module" src="/src/main.ts"></script>
</head>
<body>
<yara-playground-app></yara-playground-app>
</body>
</html>
29 changes: 29 additions & 0 deletions playground/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"name": "yara-x-playground",
"private": true,
"contributors": [
"kevinmuoz"
],
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "tsc && vite build",
"preview": "vite preview",
"prod": "vite build && vite preview",
"format": "prettier --write ."
},
"dependencies": {
"@codingame/monaco-vscode-editor-api": "^25.1.2",
"lit": "^3.3.2",
"monaco-languageclient": "^10.7.0",
"vscode-languageclient": "^9.0.1",
"vscode-languageserver-protocol": "^3.17.5"
},
"devDependencies": {
"prettier": "^3.8.1",
"rollup-plugin-visualizer": "^7.0.1",
"typescript": "~5.9.3",
"vite": "^7.1.0"
}
}
Loading
Loading