madflojo / tarmac Goto Github PK
View Code? Open in Web Editor NEWWrite as Functions, Deploy as a Monolith or Microservice with WebAssembly
Home Page: https://tarmac.gitbook.io/tarmac-framework/
License: Apache License 2.0
Write as Functions, Deploy as a Monolith or Microservice with WebAssembly
Home Page: https://tarmac.gitbook.io/tarmac-framework/
License: Apache License 2.0
Tarmac is still pretty new, and while I know Go pretty well Rust and AssemblyScript are still fairly new to me. It would be great to have some more examples created for Tarmac.
Hi! I tried to use Tarmac but had some issues due to the lack of ARM support in the official docker image. I noticed you're already using QEMU and buildx as steps in the pipeline, so I believe just a platforms: linux/amd64,linux/arm64
in the push-action could add this?
tinygo now supports embed package which might be useful for functions that need resources.
See: https://github.com/tinygo-org/tinygo/releases/tag/v0.24.0
Interesting project! What would you say are you main differentiating points compared to wasmcloud?
So, while a Debug log containing things like a remote IP, path, etc., is not a concern in my opinion, headers, on the other hand, could contain sensitive information and should probably only be logged in a trace at most.
Tracking issue for:
Running on WSL2 Ubuntu
Docker version 20.10.14, build a224086
The source was cloned and the example build instructions were followed
$ cd example/tac/go
$ make build
make build
mkdir -p functions
## Run TinyGo build via Docker because waPC requires a <0.18.0 version of TinyGo to work right
docker run -v `pwd`/:/build -w /build tinygo/tinygo:0.17.0 tinygo build -o /build/functions/tarmac.wasm -target wasi /build/main.go
go: downloading github.com/wapc/wapc-guest-tinygo v0.3.0
The tarmac wasm file is generated after running the build command:
$ ls -l functions/
total 220
-rwxr-xr-x 1 root root 221650 Jul 18 11:21 tarmac.wasm
Running the tarmac container:
docker run -p 8080:8080 \
-e "APP_ENABLE_TLS=false" \
-e "APP_LISTEN_ADDR=0.0.0.0:8080" \
-v $(pwd)/functions:/functions madflojo/tarmac
time="2022-07-18T15:00:33Z" level=warning msg="No Config file found, loaded config from Environment - Default path ./conf"
time="2022-07-18T15:00:33Z" level=info msg="KV Store not configured, skipping"
time="2022-07-18T15:00:33Z" level=info msg="SQL DB not configured, skipping"
time="2022-07-18T15:00:33Z" level=fatal msg="Service stopped - unable to create module pool for wasm file /functions/tarmac.wasm - module[wasi_unstable] not instantiated"
Currently, release tags don't have automatic docker publishing, tests, or any other actions being performed.
As far as I can see there is not any auth or authz in tarmac.
i generally use NATS for rerouting events into tarmac . Nats just wants a jwt to control Auth and Authz.
But even without NATS , Tarnac needs to assert who can do what.
https://github.com/pocketbase/pocketbase looks like a nice solution to this.
.Or at least to use as one way to add auth / authz. It’s probable that others might want a different solution and that’s why jwt is loose coupled.
the cool thing about pocketbaae is that it’s real time and simple.
have a look
Wazero is faster than the others due to less overhead
It can run within envoy or alone
Config can be file based or off envoy.
It can also run wasi and wasm compiled golang .
When multiple init functions are defined, or scheduled tasks are defined within the configuration file during execution, only the last function defined will be executed. This appears to be due to a scoping issue with the closures and the for loop they are defined within.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.