Skip to content

Commit 0e6f647

Browse files
authored
Merge pull request #29 from robherley/robherley/funcd
switch to bun-based runtime & proxy layer
2 parents e7f9af0 + f6bdda8 commit 0e6f647

Some content is hidden

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

46 files changed

+802
-2218
lines changed

.gitignore

Lines changed: 167 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,31 @@
11
tmp/
2+
/tmp/funcd.sock
23

3-
# Created by https://www.toptal.com/developers/gitignore/api/rust,visualstudiocode,macos
4-
# Edit at https://www.toptal.com/developers/gitignore?templates=rust,visualstudiocode,macos
4+
# Created by https://www.toptal.com/developers/gitignore/api/rust,go,node,visualstudiocode,macos
5+
# Edit at https://www.toptal.com/developers/gitignore?templates=rust,go,node,visualstudiocode,macos
6+
7+
### Go ###
8+
# If you prefer the allow list template instead of the deny list, see community template:
9+
# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore
10+
#
11+
# Binaries for programs and plugins
12+
*.exe
13+
*.exe~
14+
*.dll
15+
*.so
16+
*.dylib
17+
18+
# Test binary, built with `go test -c`
19+
*.test
20+
21+
# Output of the go coverage tool, specifically when used with LiteIDE
22+
*.out
23+
24+
# Dependency directories (remove the comment below to include it)
25+
# vendor/
26+
27+
# Go workspace file
28+
go.work
529

630
### macOS ###
731
# General
@@ -36,6 +60,146 @@ Temporary Items
3660
# iCloud generated files
3761
*.icloud
3862

63+
### Node ###
64+
# Logs
65+
logs
66+
*.log
67+
npm-debug.log*
68+
yarn-debug.log*
69+
yarn-error.log*
70+
lerna-debug.log*
71+
.pnpm-debug.log*
72+
73+
# Diagnostic reports (https://nodejs.org/api/report.html)
74+
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
75+
76+
# Runtime data
77+
pids
78+
*.pid
79+
*.seed
80+
*.pid.lock
81+
82+
# Directory for instrumented libs generated by jscoverage/JSCover
83+
lib-cov
84+
85+
# Coverage directory used by tools like istanbul
86+
coverage
87+
*.lcov
88+
89+
# nyc test coverage
90+
.nyc_output
91+
92+
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
93+
.grunt
94+
95+
# Bower dependency directory (https://bower.io/)
96+
bower_components
97+
98+
# node-waf configuration
99+
.lock-wscript
100+
101+
# Compiled binary addons (https://nodejs.org/api/addons.html)
102+
build/Release
103+
104+
# Dependency directories
105+
node_modules/
106+
jspm_packages/
107+
108+
# Snowpack dependency directory (https://snowpack.dev/)
109+
web_modules/
110+
111+
# TypeScript cache
112+
*.tsbuildinfo
113+
114+
# Optional npm cache directory
115+
.npm
116+
117+
# Optional eslint cache
118+
.eslintcache
119+
120+
# Optional stylelint cache
121+
.stylelintcache
122+
123+
# Microbundle cache
124+
.rpt2_cache/
125+
.rts2_cache_cjs/
126+
.rts2_cache_es/
127+
.rts2_cache_umd/
128+
129+
# Optional REPL history
130+
.node_repl_history
131+
132+
# Output of 'npm pack'
133+
*.tgz
134+
135+
# Yarn Integrity file
136+
.yarn-integrity
137+
138+
# dotenv environment variable files
139+
.env
140+
.env.development.local
141+
.env.test.local
142+
.env.production.local
143+
.env.local
144+
145+
# parcel-bundler cache (https://parceljs.org/)
146+
.cache
147+
.parcel-cache
148+
149+
# Next.js build output
150+
.next
151+
out
152+
153+
# Nuxt.js build / generate output
154+
.nuxt
155+
dist
156+
157+
# Gatsby files
158+
.cache/
159+
# Comment in the public line in if your project uses Gatsby and not Next.js
160+
# https://nextjs.org/blog/next-9-1#public-directory-support
161+
# public
162+
163+
# vuepress build output
164+
.vuepress/dist
165+
166+
# vuepress v2.x temp and cache directory
167+
.temp
168+
169+
# Docusaurus cache and generated files
170+
.docusaurus
171+
172+
# Serverless directories
173+
.serverless/
174+
175+
# FuseBox cache
176+
.fusebox/
177+
178+
# DynamoDB Local files
179+
.dynamodb/
180+
181+
# TernJS port file
182+
.tern-port
183+
184+
# Stores VSCode versions used for testing VSCode extensions
185+
.vscode-test
186+
187+
# yarn v2
188+
.yarn/cache
189+
.yarn/unplugged
190+
.yarn/build-state.yml
191+
.yarn/install-state.gz
192+
.pnp.*
193+
194+
### Node Patch ###
195+
# Serverless Webpack directories
196+
.webpack/
197+
198+
# Optional stylelint cache
199+
200+
# SvelteKit build / generate output
201+
.svelte-kit
202+
39203
### Rust ###
40204
# Generated by Cargo
41205
# will have compiled files and executables
@@ -71,4 +235,4 @@ Cargo.lock
71235
.history
72236
.ionide
73237

74-
# End of https://www.toptal.com/developers/gitignore/api/rust,visualstudiocode,macos
238+
# End of https://www.toptal.com/developers/gitignore/api/rust,go,node,visualstudiocode,macos

Cargo.toml

Lines changed: 2 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,9 @@
11
[workspace]
2-
members = [
3-
"crates/func_runtime",
4-
"crates/func_worker",
5-
]
2+
members = ["crates/*"]
63
resolver = "2"
74

85
[workspace.package]
96
version = "0.1.0"
107
edition = "2024"
118
authors = ["Rob Herley <[email protected]>"]
12-
license = "MIT"
13-
14-
[workspace.dependencies]
15-
anyhow = "1.0.94"
16-
axum = { version = "0.8", features = ["macros"] }
17-
bytes = "1.10.1"
18-
deno_ast = { version = "0.50.0", features = ["transpiling"] }
19-
deno_console = "0.214.0"
20-
deno_core = "0.355.0"
21-
deno_error = "0.7.0"
22-
deno_fetch = "0.238.0"
23-
deno_net = "0.206.0"
24-
deno_permissions = "0.73.0"
25-
deno_telemetry = "0.36.0"
26-
deno_url = "0.214.0"
27-
deno_web = "0.245.0"
28-
deno_webidl = "0.214.0"
29-
http = "1.3.1"
30-
rand = "0.9.2"
31-
reqwest = "0.12.23"
32-
rustls = "0.23.28"
33-
serde = { version = "1.0", features = ["derive"] }
34-
serde_json = "1.0"
35-
serde_v8 = "0.264.0"
36-
thiserror = "2.0.16"
37-
tokio = { version = "1.42.0", features = ["io-util", "rt", "macros", "net"] }
38-
tokio-stream = "0.1.17"
39-
tower = "0.5"
40-
tower-http = { version = "0.6", features = ["trace", "request-id"] }
41-
tracing = "0.1"
42-
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
43-
uuid = { version = "1.0", features = ["v7", "serde"] }
9+
license = "MIT"

bun.lock

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"lockfileVersion": 1,
3+
"workspaces": {
4+
"": {
5+
"devDependencies": {
6+
"@types/bun": "latest",
7+
},
8+
},
9+
},
10+
"packages": {
11+
"@types/bun": ["@types/[email protected]", "", { "dependencies": { "bun-types": "1.3.1" } }, "sha512-4jNMk2/K9YJtfqwoAa28c8wK+T7nvJFOjxI4h/7sORWcypRNxBpr+TPNaCfVWq70tLCJsqoFwcf0oI0JU/fvMQ=="],
12+
13+
"@types/node": ["@types/[email protected]", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-uWN8YqxXxqFMX2RqGOrumsKeti4LlmIMIyV0lgut4jx7KQBcBiW6vkDtIBvHnHIquwNfJhk8v2OtmO8zXWHfPA=="],
14+
15+
"@types/react": ["@types/[email protected]", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA=="],
16+
17+
"bun-types": ["[email protected]", "", { "dependencies": { "@types/node": "*" }, "peerDependencies": { "@types/react": "^19" } }, "sha512-NMrcy7smratanWJ2mMXdpatalovtxVggkj11bScuWuiOoXTiKIu2eVS1/7qbyI/4yHedtsn175n4Sm4JcdHLXw=="],
18+
19+
"csstype": ["[email protected]", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="],
20+
21+
"undici-types": ["[email protected]", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="],
22+
}
23+
}

crates/func_runtime/Cargo.toml

Lines changed: 0 additions & 34 deletions
This file was deleted.

crates/func_runtime/src/comms.rs

Lines changed: 0 additions & 44 deletions
This file was deleted.

crates/func_runtime/src/ext/deno_console.js

Lines changed: 0 additions & 12 deletions
This file was deleted.

crates/func_runtime/src/ext/deno_fetch.js

Lines changed: 0 additions & 45 deletions
This file was deleted.

0 commit comments

Comments
 (0)