Skip to content

Commit bb36498

Browse files
franckfermanclaude
andcommitted
Initial release
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
0 parents  commit bb36498

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+12550
-0
lines changed

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Tell GitHub Linguist not to count the docs site in language stats
2+
docs/index.html linguist-documentation=true

.github/workflows/ci.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [stable, dev]
6+
pull_request:
7+
branches: [stable, dev]
8+
9+
jobs:
10+
check:
11+
name: Syntax Check
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- uses: actions/checkout@v4
16+
17+
- name: Set up Python
18+
uses: actions/setup-python@v5
19+
with:
20+
python-version: "3.10"
21+
22+
- name: Install dependencies
23+
run: pip install -r requirements.txt
24+
25+
- name: Syntax check
26+
run: |
27+
find . -name "*.py" -not -path "./.venv/*" -print0 \
28+
| xargs -0 python -m py_compile

.github/workflows/release.yml

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- "v*"
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
build-and-release:
13+
runs-on: ubuntu-latest
14+
15+
steps:
16+
- name: Checkout
17+
uses: actions/checkout@v4
18+
with:
19+
fetch-depth: 0
20+
21+
- name: Set up Go
22+
uses: actions/setup-go@v5
23+
with:
24+
go-version-file: native/go/go.mod
25+
cache: false
26+
27+
- name: Set up Rust
28+
uses: dtolnay/rust-toolchain@stable
29+
30+
- name: Install C toolchain
31+
run: sudo apt-get install -y gcc build-essential
32+
33+
- name: Build native backends
34+
run: make
35+
36+
- name: Package release artifact
37+
run: |
38+
TAG=${GITHUB_REF_NAME}
39+
DIST="floodles-${TAG}-linux-x86_64"
40+
mkdir -p "$DIST"
41+
42+
# Python source
43+
cp -r cli config core modules utils \
44+
__init__.py setup.py requirements.txt \
45+
Makefile install.sh LICENSE README.md \
46+
"$DIST/"
47+
48+
# Pre-built native backends
49+
mkdir -p "$DIST/native/c"
50+
mkdir -p "$DIST/native/rust/target/release"
51+
mkdir -p "$DIST/native/go"
52+
cp native/c/libsender.so "$DIST/native/c/"
53+
cp native/rust/target/release/libfloodles_packets.so "$DIST/native/rust/target/release/"
54+
cp native/go/floodles-engine "$DIST/native/go/"
55+
56+
# Also copy native sources so users can rebuild if needed
57+
cp -r native/c/Makefile native/c/sender.c "$DIST/native/c/"
58+
cp -r native/rust/Cargo.toml native/rust/src "$DIST/native/rust/"
59+
cp native/go/engine.go native/go/go.mod "$DIST/native/go/"
60+
61+
tar -czf "${DIST}.tar.gz" "$DIST"
62+
echo "DIST_FILE=${DIST}.tar.gz" >> "$GITHUB_ENV"
63+
64+
- name: Create GitHub Release
65+
uses: softprops/action-gh-release@v2
66+
with:
67+
generate_release_notes: true
68+
files: ${{ env.DIST_FILE }}
69+
env:
70+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/static.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Deploy static content to Pages
2+
3+
on:
4+
push:
5+
branches: ["stable"]
6+
paths:
7+
- 'docs/**'
8+
workflow_dispatch:
9+
10+
permissions:
11+
contents: read
12+
pages: write
13+
id-token: write
14+
15+
concurrency:
16+
group: "pages"
17+
cancel-in-progress: false
18+
19+
jobs:
20+
deploy:
21+
environment:
22+
name: github-pages
23+
url: ${{ steps.deployment.outputs.page_url }}
24+
runs-on: ubuntu-latest
25+
steps:
26+
- uses: actions/checkout@v4
27+
- uses: actions/configure-pages@v5
28+
- uses: actions/upload-pages-artifact@v3
29+
with:
30+
path: './docs'
31+
- id: deployment
32+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 232 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,232 @@
1+
# ==============================
2+
# 🦫 Golang
3+
# ==============================
4+
5+
# Go module caches
6+
pkg/
7+
.gocache/
8+
.go-build/
9+
10+
# Go workspace file (optional in multi-module repos)
11+
go.work
12+
go.work.sum
13+
14+
# Staticcheck and other linter/analysis tools caches
15+
staticcheck.cache/
16+
golangci-lint-report.xml
17+
18+
# Compiled Go binaries
19+
native/go/floodles-engine
20+
21+
# ==============================
22+
# 🦀 Rust
23+
# ==============================
24+
25+
# Cargo build directory
26+
native/rust/target/
27+
28+
# Cargo lockfile (optional if lib), can be kept if binary-only project
29+
Cargo.lock
30+
31+
# Cargo package and crates registry
32+
*.crate
33+
34+
# Rust temporary files
35+
*.rlib
36+
*.d
37+
38+
# Linter/formatting tools
39+
clippy.lint
40+
rustfmt.toml
41+
rustfmt_config.toml
42+
43+
# Rust Analyzer (IDE support)
44+
.rust_analyzer.json
45+
46+
# Coverage & test outputs
47+
*.profraw
48+
*.gcda
49+
*.gcno
50+
51+
# ==============================
52+
# 🐫 Perl
53+
# ==============================
54+
55+
# Perl local libs (cpanm, local::lib, Carton)
56+
local/
57+
fatlib/
58+
extlib/
59+
vendor/
60+
.carton/
61+
cpanfile.snapshot
62+
63+
# Perl test and coverage outputs
64+
*.t
65+
*.swp
66+
nytprof.out
67+
nytprof/
68+
*.profraw
69+
*.profdata
70+
71+
# Perl debugger history
72+
.perldb
73+
74+
# Meta files (e.g. metadata during builds)
75+
MYMETA.*
76+
77+
# ==============================
78+
# 🚀 Python
79+
# ==============================
80+
81+
# Byte-compiled / optimized / DLL files
82+
__pycache__/
83+
*.py[cod]
84+
*$py.class
85+
*.so
86+
87+
# Virtual environments
88+
.env
89+
.venv
90+
env/
91+
venv/
92+
ENV/
93+
env.bak/
94+
venv.bak/
95+
96+
# Distribution / packaging
97+
build/
98+
dist/
99+
.eggs/
100+
*.egg-info/
101+
.installed.cfg
102+
*.egg
103+
MANIFEST
104+
105+
# Installer logs
106+
pip-log.txt
107+
pip-delete-this-directory.txt
108+
109+
# Unit test / coverage reports
110+
htmlcov/
111+
.tox/
112+
.nox/
113+
.coverage*
114+
.cache
115+
nosetests.xml
116+
coverage.xml
117+
*.cover
118+
.pytest_cache/
119+
.hypothesis/
120+
121+
# Translations
122+
*.mo
123+
*.pot
124+
125+
# Django & Flask
126+
*.log
127+
local_settings.py
128+
db.sqlite3
129+
db.sqlite3-journal
130+
instance/
131+
.webassets-cache
132+
133+
# Jupyter Notebook & IPython
134+
.ipynb_checkpoints
135+
profile_default/
136+
ipython_config.py
137+
138+
# PyBuilder, PDM, Poetry
139+
.pybuilder/
140+
target/
141+
.pdm.toml
142+
.pdm-python
143+
.pdm-build/
144+
poetry.lock
145+
146+
# Type checking & debugging
147+
.mypy_cache/
148+
.pyre/
149+
.pytype/
150+
cython_debug/
151+
152+
# ==============================
153+
# 🖥️ Shell/Bash Scripts
154+
# ==============================
155+
156+
# Temporary and backup scripts
157+
*.bak
158+
*.swp
159+
*.swo
160+
*.swn
161+
*.orig
162+
*.tmp
163+
*.old
164+
165+
# Log and debug files
166+
*.log
167+
*.log.*
168+
*.out
169+
*.err
170+
*.trace
171+
nohup.out
172+
173+
# Generated files
174+
*.pid
175+
*.lock
176+
*.sock
177+
*.history
178+
179+
# ==============================
180+
# 📝 Text editors
181+
# ==============================
182+
183+
# Vim
184+
*.swp
185+
*.swo
186+
*.swn
187+
*.viminfo
188+
189+
# Nano
190+
.nanorc
191+
*.save
192+
193+
# VSCode
194+
.vscode/
195+
*.code-workspace
196+
197+
# Sublime Text
198+
*.sublime-project
199+
*.sublime-workspace
200+
201+
# JetBrains (PyCharm, IntelliJ, WebStorm)
202+
.idea/
203+
*.iml
204+
205+
# Emacs
206+
*~
207+
*.spacemacs
208+
209+
# ==============================
210+
# 💾 Operating systems
211+
# ==============================
212+
213+
# macOS
214+
.DS_Store
215+
.AppleDouble
216+
.LSOverride
217+
.Spotlight-V100/
218+
.Trashes/
219+
._*
220+
__MACOSX/
221+
222+
# Windows
223+
Thumbs.db
224+
ehthumbs.db
225+
*.lnk
226+
Desktop.ini
227+
$RECYCLE.BIN/
228+
229+
# Linux
230+
*.lock
231+
*~
232+

0 commit comments

Comments
 (0)