metrue / fx Goto Github PK
View Code? Open in Web Editor NEWA Function as a Service tool makes a function as a container-based service in seconds.
License: MIT License
A Function as a Service tool makes a function as a container-based service in seconds.
License: MIT License
The link https://raw.githubusercontent.com/metrue/fx/master/images.zip
response 404.
fx donw '*'
to down alll deployed functions does not work, I think we have not handle this request well now.
here is the idea:
fx can docker pull the base images of all the supported language first background, then deploy should be faster than ever.
How could I add support for the R language?
fx should be able to run on Linux, Mac, Windows which have docker running on now. so if there is a tool to make docker environment ready on Linux, Mac, Windows.
fx
should be read config ~/.fx/config
fx up
support remote deployfx
agent exist in target agent.Hello @metrue,
There are a lot of temporary items in my working folder.
Is this necessary?
When I git clone
this repo, I found out the binary file build/fx
is included in the git, which cost a lot of time to finish the clone.
Besides, after I clone it, I cannot run it, because architecture doesn't comply my system:
# file build/fx
build/fx: Mach-O 64-bit x86_64 executable
I suggest this binary file should be excluded from the repo, add this line for .gitignore
build/
And tell git to forget this file:
git rm --cached build/fx
Update README for a quicker clone:
git clone --depth 1 https://github.com/metrue/fx
setup a cloud host with fx server running on, then random people can try fx to deploy a function. host should stop all services in every half hour to avoid too much services running.
I'm trying to come up with a Julia implementation, this can make fx pretty useful for scientists.
The first steps seem fine, HttpParser.jl seems to fail to build on the docker image. Once this is fixed, the Julia integration can go further
#!/bin/bash -eo pipefail
./bin/coverage.sh
bash <(curl -s https://codecov.io/bash) -t ${CODECOV_TOKEN}
ok github.com/metrue/fx/image 1.028s coverage: 90.5% of statements
2017/12/16 21:06:29 build linux
Step 1/5 : FROM metrue/fx-node-base
--- FAIL: TestList (20.01s)
list_test.go:74: Up failed: rpc error: code = Unavailable desc = transport is closing
FAIL
coverage: 42.1% of statements
FAIL github.com/metrue/fx/api/service 20.247s
Exited with code 1
The way dependencies are handled seem to cause conflict.
The versions of github.com/docker/go-connections/nat used in the project and in the docker/docker packages seem to conflict.
$ go get github.com/metrue/fx
# github.com/metrue/fx/server/docker-api
go/src/github.com/metrue/fx/server/docker-api/api.go:61:15: cannot use "github.com/docker/go-connections/nat".PortSet literal (type "github.com/docker/go-connections/nat".PortSet) as type "github.com/docker/docker/vendor/github.com/docker/go-connections/nat".PortSet in field value
go/src/github.com/metrue/fx/server/docker-api/api.go:66:15: cannot use "github.com/docker/go-connections/nat".PortMap literal (type "github.com/docker/go-connections/nat".PortMap) as type "github.com/docker/docker/vendor/github.com/docker/go-connections/nat".PortMap in field value
new feature code have to delivery with unit test.
after start fx server by
$ brew tap metrue/homebrew-fx && brew install fx
$ sudo fx server start
everything works well, but when I enter fx list
, I get
โ $ fx list
dial tcp [::1]:8080: getsockopt: connection refused
right now, base images management is terrible.
With commit 5b23349 the makefile was enhanced to clone the google apis. These files will be visible in git status. Is there an entry in gitignore missing?
like
fx serve -d
I just see an app.go
file which seems to use symbols not defined there (Input, Fx), is the fx.go file missing?
Choose a licence and add it to the project
We should re-think the message delivered to user during fx using.
if everything ok, message should be ____
if error happens, message should be ____
if everything ok, message should be ____
if error happens, message should be ____
if everything ok, message should be ____
if error happens, message should be ____
make build
go generate ./api/fx.go
gen.sh: 3: gen.sh: **Bad substitution**
go build -o ./build/fx fx.go
$ uname -a
Linux ubuntu 4.9.50-x86_64-linode86 #1 SMP Thu Sep 14 19:28:20 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
stopping tons of service is a jok right now.
Errors could be documented a bit further and bubble up the stacktrace instead of panicking. All potentially-failing functions should return an error.
See github.com/pkg/errors
I would suggest to introduce a raw Dockerfile
support that just build a dir to a container.
This may then been invoked directly via a proxy call ex. fx call my_container
At call time, arguments are injected in the container stdin
, returning stdout
I am working at a PoC for validation (WIP https://github.com/muka/fx/tree/anyfx)
I believe that the gofn
project can help your project
See more about the project: https://github.com/nuveo/gofn
maybe binding to docker log
is an option.
Golang package management is kinda quirky for me, I am using glide, but it seems like I am not doing it right.
@avelino Could you help take a look at my Makefile, I am doing a lot manually jobs there.
I would like to propose to use a gRPC based service to offer intercommunication between CLI and server.
It supports also HTTP+JSON with a proxy extension.
Added benefits are the ease of generating swagger based docs, muti-lanuage SDK client generation and would also make the code a bit simpler (most of the network exchange and serialization is managed by gRPC / protobuf libraries).
With a bit of refactoring, the logic can be made reusable and this may provide benefit also on test coverage and code reusability
I am working on a PoC for validation, if it works well I would propose a PR for evaluation
I am thinking a better way to manage the docker base images stuff.
@avelino any idea?
fx call [function] [input]
will be very awesome. I will implement it soon.
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.