Skip to content

Commit

Permalink
Compiles after actix for wasm
Browse files Browse the repository at this point in the history
  • Loading branch information
najamelan committed Mar 14, 2019
1 parent 29df3fa commit c7d1982
Show file tree
Hide file tree
Showing 13 changed files with 160 additions and 54 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
Cargo.lock
# Cargo.lock

# These are backup files generated by rustfmt
**/*.rs.bk
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,6 @@
[submodule "apps/main"]
path = apps/main
url = [email protected]:najamelan/ekke_main
[submodule "ekke_core_frontend"]
path = ekke_core_frontend
url = [email protected]:ekke-rs/ekke_core_frontend.git
15 changes: 0 additions & 15 deletions Cargo.toml

This file was deleted.

108 changes: 108 additions & 0 deletions Makefile.fish
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
#! /usr/bin/fish


set --global libs \
\
ekke_config \
ekke_io \
ekke_merge \
ekke_merge_derive \


set --global back_execs \
\
ekke_core \


set --global wasm_execs \
\
ekke_core_frontend \


set --global all_execs $back_execs $wasm_execs
set --global crates $back_execs $wasm_execs $libs

set --global server ekke_core



function build

for crate in $wasm_execs

pushd $crate

echo "wasm-pack build $argv[1] $crate"

wasm-pack build $argv[1] --target no-modules; or exit 1

popd

end

for crate in $back_execs

pushd $crate

echo "Build $argv[1] $crate"

cargo build $argv[1] ; or exit 1

popd

end

end


function check

for crate in $all_execs

pushd $crate

echo "Check $crate"

cargo check; or exit 1

popd

end

end


function run

build; or exit 1

pushd $server

echo "Run $argv[1] Ekke Server"
cargo run $argv[1]

popd

end


# When running cargo commands on an executable, cargo yaml won't be called on it's
# dependencies. We have a custom wrapper for cargo that calls it wherever cargo is
# called, but the cargo command won't be called in the shell to build dependencies...
#
for crate in $crates

pushd $crate

cargo > /dev/null

popd

end

if test (count $argv) -eq 0 ; check; exit ; end
if test $argv[1] = "check" ; check ; end
if test $argv[1] = "build" ; build ; end
if test $argv[1] = "run" ; run ; end
if test $argv[1] = "buildrel" ; build --release ; end
if test $argv[1] = "runrel" ; run --release ; end
31 changes: 0 additions & 31 deletions Makefile.toml

This file was deleted.

42 changes: 41 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,42 @@
# ekke
Application framework in Rust

EKKE IS CURRENTLY WIP AND NOT PRODUCTION READY (this readme serves me for taking notes for later...)

Ekke is an application framework for building cross platform GUI apps that run both locally and on the web. The general purpose is to allow for each application to be developed by writing stricly its actual functionality. Ekke will take care of all annoying chores for you: installation, deployment, configuration, logging, user auth, reusable frontend components like powerful fuzzy search/command bar, ... Write nothing but your actual functionality.

If all you want to do is write a CLI application, you probably don't want to bother using the ekke framework. If you want cross platform GUI and deploy to phone, desktop and web at once, Ekke should save you alot of time.

When writing an application with ekke, you are locked in:

- writing a frontend with web technologies:
1. structure: html
2. styling : css/scss/less/sass...
3. logic : webassembly/javascript/typescript/elm/purescript...

- Separating your frontend and backend in 2 components
- Components in ekke must communicate in ekkespeak (CBOR encoded messages)
- Require the ekke server to run alongside your application

Ekke will provide you with the following advantages:

- all your backend has to do is connect to a socket and understand ekkespeak. You need not worry about any low level stuff like setting up http etc...
- you can use any programming language for your backend. You can choose any database for your backend.
- ekke can be compiled into your program as a library, or you can deploy your program for people already running ekke through package management.
- reusable frontend components for consistent user experience (powerful instant search bar that can also send commands to your backend,...)
- ekke will take care of repetitive chores like installation/deployment/configuration/logging/user auth/...
- if you develop in rust you have additional benefits, you can compile agains the ekke libs to have acces to all structs and traits directly, so you don't have to implement ekkespeak, nor socket connection. All











- reusblility of functionality (do as little as possible in apps)
- be careful not to lock apps in xxx
-

2 changes: 1 addition & 1 deletion apps/main
Submodule main updated from a085a2 to 0c028e
2 changes: 1 addition & 1 deletion ekke_config
2 changes: 1 addition & 1 deletion ekke_core
1 change: 1 addition & 0 deletions ekke_core_frontend
Submodule ekke_core_frontend added at 37d4ff
2 changes: 1 addition & 1 deletion ekke_io
2 changes: 1 addition & 1 deletion ekke_merge
2 changes: 1 addition & 1 deletion ekke_merge_derive

0 comments on commit c7d1982

Please sign in to comment.