Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
142 commits
Select commit Hold shift + click to select a range
a281171
Databricks: Add support for `UPDATE SET *` and `INSERT *` in MERGE st…
finchxxia May 2, 2026
824b5c1
Snowflake: Fix COPY INTO transformation parsing for cast expressions …
97nitt May 6, 2026
299f54d
Snowflake: Accept COPY GRANTS after CREATE VIEW column list (#2327)
97nitt May 6, 2026
3f347e3
Fix panic in EscapeQuotedString and parse_flush, clean up a few unwra…
Mrmaxmeier May 6, 2026
f98c9d1
[Teradata] Add `CREATE TABLE` options (#2329)
iffyio May 6, 2026
79f06bd
Add support for PostgreSQL's ORDER BY ... USING <operator> clause (#2…
LucaCappelletti94 May 6, 2026
7c78d13
BigQuery: Parse WITH CONNECTION on CREATE EXTERNAL TABLE (#2326)
97nitt May 6, 2026
ab8e6ad
Add ASYNC keyword support for CREATE INDEX (#2302)
amaksimo May 15, 2026
05af09c
PostgreSQL: add support for `ABORT TRANSACTION` (#2332)
sunng87 May 18, 2026
05428be
Snowflake: Add support for PUT (#2341)
ramnes May 20, 2026
e999d3d
Make `visitor` feature `no_std`-compatible (#2343)
LucaCappelletti94 May 21, 2026
2705a7d
Parser: fix exponential parse time on compound chains (#2344)
LucaCappelletti94 May 21, 2026
182eae8
MySQL: Add support for group by with rollup (#2347)
yoavcloud May 21, 2026
5d61fdd
Hive: Support MAP<K, V> column types (#2346)
wugeer May 27, 2026
8c3f7fc
Snowflake: Add support for CREATE FILE FORMAT (#2336)
ramnes May 27, 2026
b6af2ae
Expose Parser::into_comments (#2354)
xitep May 28, 2026
0d63896
Improve accuracy of supports_string_literal_concatenation_with_newlin…
yoavcloud May 28, 2026
42840f0
Spark: enable SQL pipe operator (`|>`) (#2358)
moshap-firebolt May 30, 2026
575ee26
Support multiple targets for `SELECT INTO` (#2360)
iffyio Jun 2, 2026
d0c081e
Fix issue #2353: Incorrect canonicalization of `NATURAL JOIN` (#2355)
revitalkr Jun 5, 2026
bd8a2c1
Microsoft sql server: Escape quotes in national string display (#2365)
lovasoa Jun 6, 2026
928783d
Parser: fix exponential parse time on compound keyword chains (#2350)
LucaCappelletti94 Jun 6, 2026
20b9849
Parser: fix exponential parse time on speculative prefix parsing (#2352)
LucaCappelletti94 Jun 6, 2026
0bfafea
Support aliased function arguments (expr AS name) (#2368)
LucaCappelletti94 Jun 8, 2026
158687b
Forbid unsafe code (#2369)
LucaCappelletti94 Jun 9, 2026
b376022
sqlite: Support `GLOB` operator (#2362)
connyay Jun 9, 2026
fd5c163
Parser: fix exponential parse time on table-factor paren chains (#2372)
moshap-firebolt Jun 15, 2026
7bf5ff2
Disable `supports_left_associative_joins_without_parens` for MySQL an…
revitalkr Jun 15, 2026
c3701e2
Add PostgreSQL `CREATE/ALTER TEXT SEARCH` DDL Parsing (#2250)
LucaCappelletti94 Jun 16, 2026
8cd2997
Do not consume statement terminator in unparenthesized option lists (…
LucaCappelletti94 Jun 17, 2026
021e97d
feat: add PostgreSQL EXCLUDE constraint parsing (#2307)
fmguerreiro Jun 18, 2026
e79119c
Parse `ALTER USER` as a synonym for `ALTER ROLE` (#2374)
LucaCappelletti94 Jun 20, 2026
bf1741b
Add pre_visit_ident / post_visit_ident hooks to the Visitor trait (#2…
sabir-akhadov-localstack Jun 23, 2026
eaf7231
Handle nested parentheses in INSERT subquery detection (#2387)
sabir-akhadov-localstack Jun 29, 2026
a023b78
PostgreSQL `UNLOGGED` Table Support and `ALTER TABLE ... SET LOGGED|U…
LucaCappelletti94 Jul 1, 2026
b478611
ClickHouse: Support unparenthesized IN right-hand side (#2385)
dinmukhamedm Jul 1, 2026
be95cf6
Parser: fix exponential parse time on expression-named function argum…
moshap-firebolt Jul 2, 2026
5e7b007
CI: Add cargo audit security workflow (#2373)
LucaCappelletti94 Jul 2, 2026
aeb616f
Postgres: parse LIMIT after the row-locking clause (#2391)
truffle-dev Jul 3, 2026
86a6143
Fix clippy lints for Rust 1.97 (#2402)
takaebato Jul 12, 2026
ed98c40
PostgreSQL: support right-deep join chains (deferred ON clauses) (#2377)
moshap-firebolt Jul 14, 2026
cadabb2
Dialects: implement identifier_quote_style for remaining dialect (#2401)
takaebato Jul 14, 2026
cad50d5
Support inline aggregate WHERE filter (`AGG(expr WHERE cond)`) (#2404)
moshap-firebolt Jul 16, 2026
bef86dd
Snowflake: parse CREATE WAREHOUSE (#2388)
sabir-akhadov-localstack Jul 21, 2026
09827e1
PostgreSQL: Support SQL standard `ARRAY` keyword in type declarations…
LucaCappelletti94 Jul 26, 2026
6f8a716
Accept CREATE OR REPLACE SCHEMA (#2396)
sabir-akhadov-localstack Jul 27, 2026
952983b
ClickHouse: Fix MATERIALIZED column option docs typo (#2410)
Hashim1999164 Jul 27, 2026
797fc9b
Adding support for `IS JSON` & `IS NOT JSON` (#2256)
LucaCappelletti94 Jul 27, 2026
57a62ae
Support numeric underscore separators for DuckDB and SQLite (#2412)
nuno-faria Jul 28, 2026
b2ff6ae
Add visitors for ORDER BY and GROUP BY (#2406)
rs-sac Jul 30, 2026
2f3b5b8
PostgreSQL: support INCLUDE on PRIMARY KEY / UNIQUE table constraints…
amaksimo Jul 30, 2026
c4e7dc5
Honour operator precedence in SQLite `REGEXP`, `MATCH` and `GLOB` (#2…
LucaCappelletti94 Aug 4, 2026
33521a5
Add recursion checks for parse_interval (#2422)
shuvamk Aug 4, 2026
30d0836
Added support for unpivot in Redshift with expression and bracketsles…
kfirSatori Aug 4, 2026
d920e66
Add XMLPARSE expression (#2371)
LucaCappelletti94 Aug 20, 2026
7076b79
BigQuery: enable FROM-first SELECT (#2439)
moshap-firebolt Aug 20, 2026
e436249
Reject invalid numeric underscore separators (#2426)
fyrsta7 Aug 24, 2026
2f1c486
Keep the quoting and span of a function argument name (#2447)
LucaCappelletti94 Aug 24, 2026
f00a57b
Improved AGENTS.md to address the problematics of slop PRs & reviews …
LucaCappelletti94 Aug 24, 2026
80a211f
Support PostgreSQL's `RESET SESSION AUTHORIZATION` (#2413)
LucaCappelletti94 Aug 24, 2026
777a166
Support `NO INHERIT` modifier on `CHECK` constraints (#2435)
LucaCappelletti94 Aug 24, 2026
183e083
Print `GRANT` clauses in the order the parser reads them (#2415)
LucaCappelletti94 Aug 24, 2026
9ccf9ac
Inline Word::to_ident (#2427)
fyrsta7 Aug 25, 2026
471f1da
Parse `REVOKE GRANT OPTION FOR` (#2431)
LucaCappelletti94 Aug 25, 2026
75a1040
Redshift: allow INTERVAL as a column name (#2456)
BenSatori Aug 25, 2026
c0054b7
Honour operator precedence in `IS [NOT] DISTINCT FROM` (#2436)
zvonimir-dd Aug 30, 2026
ff75cdf
Stop printing a trailing space after `PUBLIC` in `GRANT` and `REVOKE`…
LucaCappelletti94 Sep 2, 2026
48e8617
PostgreSQL: Allow non-reserved keywords as table aliases (#2479)
BenSatori Sep 3, 2026
9fa9a6e
Honour operator precedence in MySQL and Spark `DIV` (#2471)
zvonimir-dd Sep 3, 2026
223a269
MySQL: print a space before PARTITION when displaying a table factor …
shuvamk Sep 3, 2026
0821cbd
Preserve numeric compound field access display (#2463)
LucaCappelletti94 Sep 3, 2026
cbade61
Visit CreateView name as a relation (#2442)
sabir-akhadov-localstack Sep 3, 2026
66bc6b3
Apply recursion limit without std (#2465)
LucaCappelletti94 Sep 3, 2026
f68211b
Parse PostgreSQL MERGE DO NOTHING actions (#2468)
LucaCappelletti94 Sep 3, 2026
5c974dd
Add recursion checks for parse_data_type (#2411)
iffyio Sep 3, 2026
bd0f36f
Parse expression-valued LIKE ESCAPE clauses (#2476)
lovasoa Sep 7, 2026
eb61422
Databricks: enable query and nested type syntax (#2478)
EthanVieira Sep 7, 2026
16cd393
Visit function clauses in source order (#2477)
lovasoa Sep 7, 2026
dc8f0c4
Update sqlparser_derive to syn 3.0 (#2483)
alamb Sep 8, 2026
85b1a6f
chore: Bump version to 0.63.0 and add changelog (#2481)
alamb Sep 8, 2026
25565b2
Redshift: Support APPROXIMATE PERCENTILE_DISC (#2480)
BenSatori Sep 10, 2026
86fb33d
Postgres: Fix parsing of COLLATE after :: cast (#2490)
BenSatori Sep 10, 2026
b595062
Add NOTICE file (#2496)
alamb Sep 10, 2026
9296011
Databricks: support INSERT BY NAME (#2403)
finchxxia Sep 14, 2026
1195239
Fuzz: Replace honggfuzz harness with cargo-fuzz (#2520)
LucaCappelletti94 Sep 18, 2026
3fd342f
PostgreSQL: Render prefix @ operator with a space (#2531)
LucaCappelletti94 Sep 21, 2026
0718147
Render prefix ~ operator with a space (#2533)
LucaCappelletti94 Sep 21, 2026
7449e27
Fix unary minus rendering into -- line comments (#2532)
LucaCappelletti94 Sep 21, 2026
f8c94d2
Fuzz: Wire up ClusterFuzzLite CI fuzzing (#2527)
LucaCappelletti94 Sep 21, 2026
d6afa01
Fuzz: Display roundtrip (#2528)
LucaCappelletti94 Sep 22, 2026
cd5ca0b
Separate the LAMBDA keyword syntax from the -> lambda syntax (#2458)
adriangb Sep 22, 2026
4486a79
Fuzz: Add curated seed corpus (#2530)
LucaCappelletti94 Sep 22, 2026
64fa70b
Fix `TABLE` command identifier quoting and token consumption (#2540)
LucaCappelletti94 Sep 22, 2026
27da1cc
PostgreSQL: Fix spacing between adjacent postfix factorial operators …
LucaCappelletti94 Sep 22, 2026
efafbc2
Escape quotes when displaying `Word` tokens (#2544)
LucaCappelletti94 Sep 22, 2026
d398304
PostgreSQL: Render prefix |/ and ||/ operators with a space (#2545)
LucaCappelletti94 Sep 22, 2026
80751ed
Generic: Fix quote escaping when displaying hex string literals (#2542)
LucaCappelletti94 Sep 22, 2026
f354ee2
Snowflake: Fix stage delimiter handling and gate stage table factor o…
LucaCappelletti94 Sep 22, 2026
2f029eb
Generic: Fix quote escaping when displaying byte and raw string liter…
LucaCappelletti94 Sep 22, 2026
0cb62a1
Add dialect labeler (#2517)
LucaCappelletti94 Sep 22, 2026
c03018d
CI: Run push workflows only on main and release branches (#2548)
LucaCappelletti94 Sep 23, 2026
3255202
CI: Cancel superseded pull request runs (#2547)
LucaCappelletti94 Sep 23, 2026
9de1ad1
ClickHouse: Support FIRST | AFTER column position in ALTER TABLE (#2535)
s5dsn-eqee Sep 23, 2026
2d57723
CI: Add Codecov coverage job with cargo-llvm-cov (#2565)
LucaCappelletti94 Sep 23, 2026
9c5e22f
Differential Fuzzing (1/3): Check `SQLiteDialect` against SQLite's ow…
LucaCappelletti94 Sep 23, 2026
4a609e7
Differential Fuzzing (2/3): Check `PostgreSqlDialect` against Postgre…
LucaCappelletti94 Sep 23, 2026
9ae00e7
Differential Fuzzing (3/3): Check `DuckDbDialect` against DuckDB's ow…
LucaCappelletti94 Sep 23, 2026
667e81d
Snowflake: Parse structured ARRAY types (#2488)
osipovartem Sep 24, 2026
ae67547
Postgres: Support TRIM FROM syntax (#2493)
BenSatori Sep 24, 2026
6862e71
Replace benchmark flamegraph.svg with png (#2497)
alamb Sep 24, 2026
2b39e3b
Run the dialect labeler on pull request pushes and reopens (#2550)
LucaCappelletti94 Sep 24, 2026
f45d254
Snowflake: parse ORDER BY ALL (#2502)
osipovartem Sep 24, 2026
0fd4fa8
Snowflake: preserve reluctant MATCH_RECOGNIZE quantifiers (#2510)
osipovartem Sep 24, 2026
220e50a
Snowflake: parse nested COPY transformation paths (#2518)
osipovartem Sep 24, 2026
f724399
SQLite: Do not tokenize `N'...'` as a national string literal (#2561)
LucaCappelletti94 Sep 24, 2026
1608bf6
Generic: Disallow quoted identifiers in colon and at-sign placeholder…
LucaCappelletti94 Sep 24, 2026
712de6e
Refactor: replace `dialect_of!` table partition check with `Dialect` …
jerguslejko Sep 24, 2026
88ffee6
ClickHouse: Support ALTER TABLE ... MODIFY ORDER BY (#2569)
jordiori Sep 24, 2026
393c2c3
Check in Cargo.lock (#2482)
alamb Sep 25, 2026
ab23305
Databricks: support collated data types (#2553)
EthanVieira Sep 25, 2026
9352883
Enable GitHub Discussions (#2581)
LucaCappelletti94 Sep 25, 2026
ddb9b92
Ignore libFuzzer worker logs in fuzz/ (#2583)
LucaCappelletti94 Sep 25, 2026
37109d4
Remove homepage metadata duplicating repository (#2582)
LucaCappelletti94 Sep 25, 2026
c23dc05
PostgreSQL: Support CREATE FOREIGN TABLE (#2515)
fmguerreiro Sep 25, 2026
37df75e
Snowflake: Parse structured OBJECT types (#2489)
osipovartem Sep 25, 2026
91f7ce2
ClickHouse: Support tuple element access by index (#2574)
s5dsn-eqee Sep 26, 2026
560a13c
MSSQL: Support PROC as CREATE PROCEDURE abbreviation (#2448)
t8y2 Sep 26, 2026
5cad906
PostgreSQL: Remove test `parse_create_table_with_inherit` (#2595)
LucaCappelletti94 Sep 28, 2026
287aaf6
Bump bigdecimal from 0.4.10 to 0.4.11 (#2602)
dependabot[bot] Oct 1, 2026
811ef29
Update SECURITY policy to conform to ASF guidelines (#2601)
alamb Oct 1, 2026
d405abe
Gate fuzz oracle targets behind features (#2585)
LucaCappelletti94 Oct 1, 2026
c2e085d
DuckDB: Support nested block comments (#2584)
LucaCappelletti94 Oct 1, 2026
bfc7d38
Generic: Render prefix `!` operator with space before operator charac…
LucaCappelletti94 Oct 1, 2026
8f4da49
MsSql: Disallow unquoted `FROM` keyword as alias assignment expressio…
LucaCappelletti94 Oct 1, 2026
aa1b5d6
SQLite: Support `CAST(expr AS)` without a type name (#2558)
LucaCappelletti94 Oct 1, 2026
b1d1486
Generic: Add spacing around dot in compound field access adjacent to …
LucaCappelletti94 Oct 1, 2026
fc18670
SQLite: Support string literals as column names in `CREATE TABLE` (#2…
LucaCappelletti94 Oct 1, 2026
7939d4b
SQLite: support == as assignment operator in UPDATE SET (#2552)
LucaCappelletti94 Oct 2, 2026
1ba145b
Generic: Parse IN lists that start with a parenthesized subquery (#2586)
LucaCappelletti94 Oct 2, 2026
c70b5b1
Add a fuzz target that flags superlinear parsing and printing (#2580)
LucaCappelletti94 Oct 2, 2026
14cbf75
SQLite: Support identifier characters above U+FFFF (#2555)
LucaCappelletti94 Oct 2, 2026
bcb872a
Merge upstream/main into main
sabir-akhadov-localstack Oct 6, 2026
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
3 changes: 3 additions & 0 deletions .asf.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ notifications:
commits: commits@datafusion.apache.org
issues: github@datafusion.apache.org
pullrequests: github@datafusion.apache.org
discussions: github@datafusion.apache.org
github:
description: "Extensible SQL Lexer and Parser for Rust"
labels:
Expand All @@ -36,6 +37,7 @@ github:
rebase: false
features:
issues: true
discussions: true
protected_branches:
main:
required_status_checks:
Expand All @@ -49,6 +51,7 @@ github:
- "test (stable)"
- "test (beta)"
- "test (nightly)"
- "coverage"
- "Release Audit Tool (RAT)"
pull_requests:
# enable updating head branches of pull requests
Expand Down
23 changes: 23 additions & 0 deletions .clusterfuzzlite/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

FROM gcr.io/oss-fuzz-base/base-builder-rust
# pg_query's build script runs bindgen, which needs libclang at build time
RUN apt-get update && apt-get install -y --no-install-recommends libclang-dev && rm -rf /var/lib/apt/lists/*
COPY . $SRC/datafusion-sqlparser-rs
WORKDIR $SRC/datafusion-sqlparser-rs
COPY ./.clusterfuzzlite/build.sh $SRC/
38 changes: 38 additions & 0 deletions .clusterfuzzlite/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
#!/bin/bash
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

set -eu

cd "$SRC/datafusion-sqlparser-rs"
# the base image's RUSTUP_TOOLCHAIN (nightly) overrides the rust-toolchain pin, so we name none
# CXXFLAGS in the image carries -stdlib=libc++ while the cc crate defaults to stdc++, so override.
export CXXSTDLIB=c++
cargo fuzz build -O --all-features --fuzz-dir fuzz

targets=$(cargo fuzz list --fuzz-dir fuzz)
if [ -z "$targets" ]; then
echo "cargo fuzz list named no target" >&2
exit 1
fi

target_dir=fuzz/target/x86_64-unknown-linux-gnu/release
for name in $targets; do
cp "$target_dir/$name" "$OUT/"
# the runner unpacks <target>_seed_corpus.zip as the starting corpus
(cd fuzz/fuzz_seeds && zip -qr "$OUT/${name}_seed_corpus.zip" *)
done
20 changes: 20 additions & 0 deletions .clusterfuzzlite/project.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

language: rust
sanitizers:
- address
19 changes: 19 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

# Exclude fuzz seed corpus from release tarball
fuzz/fuzz_seeds export-ignore
2 changes: 2 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
<!-- comma separated, or `none` -->
Dialects:
55 changes: 55 additions & 0 deletions .github/workflows/audit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

name: Security audit

on:
push:
# Feature branches get CI from pull_request, so push runs only the long-lived branches.
branches:
- main
- 'branch-*'
paths:
- '**/Cargo.toml'
- '**/Cargo.lock'
pull_request:
paths:
- '**/Cargo.toml'
- '**/Cargo.lock'
merge_group:
schedule:
# Run every day so newly published advisories are caught even when the
# dependency tree has not changed.
- cron: '0 0 * * *'

permissions:
contents: read

# Only PR runs are disposable. Main, schedule and merge-queue runs keep their verdicts.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install cargo-audit
run: cargo install cargo-audit --locked
- name: Run cargo audit
run: cargo audit --deny warnings
49 changes: 49 additions & 0 deletions .github/workflows/cflite_batch.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

name: ClusterFuzzLite batch fuzzing
on:
schedule:
- cron: '0 06 * * *' # 06:00 UTC daily
permissions: read-all
jobs:
BatchFuzzing:
runs-on: ubuntu-latest
permissions:
contents: write
strategy:
fail-fast: false
matrix:
sanitizer:
- address
steps:
- name: Build Fuzzers (${{ matrix.sanitizer }})
id: build
uses: google/clusterfuzzlite/actions/build_fuzzers@884713a6c30a92e5e8544c39945cd7cb630abcd1 # v1
with:
language: rust
sanitizer: ${{ matrix.sanitizer }}
- name: Run Fuzzers (${{ matrix.sanitizer }})
id: run
uses: google/clusterfuzzlite/actions/run_fuzzers@884713a6c30a92e5e8544c39945cd7cb630abcd1 # v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
fuzz-seconds: 3600
mode: 'batch'
sanitizer: ${{ matrix.sanitizer }}
storage-repo: ${{ github.server_url }}/${{ github.repository }}.git
storage-repo-branch: clusterfuzzlite
42 changes: 42 additions & 0 deletions .github/workflows/cflite_build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

name: ClusterFuzzLite continuous builds
on:
push:
branches:
- main
permissions: read-all
jobs:
Build:
runs-on: ubuntu-latest
concurrency:
group: ${{ github.workflow }}-${{ matrix.sanitizer }}-${{ github.ref }}
cancel-in-progress: true
strategy:
fail-fast: false
matrix:
sanitizer:
- address
steps:
- name: Build Fuzzers (${{ matrix.sanitizer }})
id: build
uses: google/clusterfuzzlite/actions/build_fuzzers@884713a6c30a92e5e8544c39945cd7cb630abcd1 # v1
with:
language: rust
sanitizer: ${{ matrix.sanitizer }}
upload-build: true
48 changes: 48 additions & 0 deletions .github/workflows/cflite_pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

name: ClusterFuzzLite PR fuzzing
on:
pull_request:
permissions: read-all
jobs:
PR:
runs-on: ubuntu-latest
concurrency:
group: ${{ github.workflow }}-${{ matrix.sanitizer }}-${{ github.ref }}
cancel-in-progress: true
strategy:
fail-fast: false
matrix:
sanitizer:
- address
steps:
- name: Build Fuzzers (${{ matrix.sanitizer }})
id: build
uses: google/clusterfuzzlite/actions/build_fuzzers@884713a6c30a92e5e8544c39945cd7cb630abcd1 # v1
with:
language: rust
github-token: ${{ secrets.GITHUB_TOKEN }}
sanitizer: ${{ matrix.sanitizer }}
- name: Run Fuzzers (${{ matrix.sanitizer }})
id: run
uses: google/clusterfuzzlite/actions/run_fuzzers@884713a6c30a92e5e8544c39945cd7cb630abcd1 # v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
fuzz-seconds: 600
mode: 'code-change'
sanitizer: ${{ matrix.sanitizer }}
42 changes: 42 additions & 0 deletions .github/workflows/cflite_prune.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

name: ClusterFuzzLite corpus pruning
on:
schedule:
- cron: '0 05 * * *' # 05:00 UTC, an hour before batch fuzzing
permissions: read-all
jobs:
Pruning:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Build Fuzzers
id: build
uses: google/clusterfuzzlite/actions/build_fuzzers@884713a6c30a92e5e8544c39945cd7cb630abcd1 # v1
with:
language: rust
- name: Run Fuzzers
id: run
uses: google/clusterfuzzlite/actions/run_fuzzers@884713a6c30a92e5e8544c39945cd7cb630abcd1 # v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
fuzz-seconds: 600
mode: 'prune'
storage-repo: ${{ github.server_url }}/${{ github.repository }}.git
storage-repo-branch: clusterfuzzlite
Loading
Loading