Skip to content

Commit 7dfd979

Browse files
committed
Initial commit
1 parent 6527e0a commit 7dfd979

File tree

104 files changed

+10245
-2
lines changed

Some content is hidden

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

104 files changed

+10245
-2
lines changed

Diff for: .gitignore

+121
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
# Byte-compiled / optimized / DLL files
2+
__pycache__/
3+
*.py[cod]
4+
*$py.class
5+
6+
# C extensions
7+
*.so
8+
9+
# Distribution / packaging
10+
.Python
11+
env/
12+
build/
13+
develop-eggs/
14+
dist/
15+
downloads/
16+
eggs/
17+
.eggs/
18+
lib/
19+
lib64/
20+
parts/
21+
sdist/
22+
var/
23+
wheels/
24+
*.egg-info/
25+
.installed.cfg
26+
*.egg
27+
src/
28+
29+
# PyInstaller
30+
# Usually these files are written by a python script from a template
31+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
32+
*.manifest
33+
*.spec
34+
35+
# Installer logs
36+
pip-log.txt
37+
pip-delete-this-directory.txt
38+
39+
# Unit test / coverage reports
40+
htmlcov/
41+
.tox/
42+
.coverage
43+
.coverage.*
44+
.cache
45+
nosetests.xml
46+
coverage.xml
47+
*.cover
48+
.hypothesis/
49+
50+
# Translations
51+
*.mo
52+
*.pot
53+
54+
# Django stuff:
55+
*.log
56+
local_settings.py
57+
58+
# Flask stuff:
59+
instance/
60+
.webassets-cache
61+
62+
# Scrapy stuff:
63+
.scrapy
64+
65+
# Sphinx documentation
66+
docs/_build/
67+
68+
# PyBuilder
69+
target/
70+
71+
# Jupyter Notebook
72+
.ipynb_checkpoints
73+
74+
# pyenv
75+
.python-version
76+
77+
# celery beat schedule file
78+
celerybeat-schedule
79+
80+
# SageMath parsed files
81+
*.sage.py
82+
83+
# dotenv
84+
.env
85+
86+
# virtualenv
87+
.venv
88+
venv/
89+
ENV/
90+
91+
# Spyder project settings
92+
.spyderproject
93+
.spyproject
94+
95+
# Rope project settings
96+
.ropeproject
97+
98+
# mkdocs documentation
99+
/site
100+
101+
# mypy
102+
.mypy_cache/
103+
mypy_report
104+
105+
.idea
106+
*~
107+
*.swp
108+
109+
tmp_rtrip
110+
.pytest_cache
111+
112+
# local storage
113+
.ironmind-store
114+
115+
*_transformed.py
116+
117+
.DS_Store
118+
119+
# Usage
120+
logs/
121+
.aws/

Diff for: README.md

+70-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,70 @@
1-
# kappa
2-
Kappa
1+
# Kappa
2+
3+
Kappa is a framework for creating and running applications for serverless
4+
computing platforms. For more information, check out
5+
[our website](http://kappa.cs.berkeley.edu/).
6+
7+
## Get Kappa
8+
9+
Coming soon.
10+
11+
## Development
12+
13+
This section contains instructions on building and running Kappa on your local machine for development purposes.
14+
If you only wish to use Kappa to write and run applications, see the "Get Kappa" section above.
15+
16+
### Requirements
17+
18+
To build and run Kappa, you need:
19+
20+
- A Unix-like environment (e.g., Linux or Mac OS).
21+
- [Python](https://www.python.org/downloads/) 3.6 or higher.
22+
```console
23+
user:./$ python3 --version
24+
Python 3.6.5
25+
```
26+
- [Go](https://golang.org/doc/install) 1.10 or higher.
27+
```console
28+
user:./$ go version
29+
go version go1.10.2 darwin/amd64
30+
```
31+
32+
We recommended creating a Python
33+
[virtual environment](http://docs.python-guide.org/en/latest/dev/virtualenvs/)
34+
in which to install Python dependencies for Kappa.
35+
36+
Certain example programs also require the `unbuffer` command.
37+
38+
- To install on Mac OS using Homebrew:
39+
```console
40+
brew install expect
41+
```
42+
- To install on ubuntu:
43+
```console
44+
sudo apt install expect
45+
```
46+
47+
### Installation
48+
49+
Coming soon.
50+
51+
### Examples
52+
53+
There are several example Kappa applications under the [examples](examples) directory.
54+
55+
### Testing
56+
57+
The Kappa tests are written using the [pytest](https://docs.pytest.org/en/latest/) framework and are located at
58+
[test_integration.py](test_integration.py). To run the tests, use a command like:
59+
```console
60+
pytest test_integration.py -v -n 4
61+
```
62+
This command runs the tests in verbose mode using 4 parallel processes.
63+
64+
The major Python components of Kappa, i.e., the [compiler](compiler/transform) and the [runtime library](compiler/rt),
65+
have decent [type annotation](https://www.python.org/dev/peps/pep-0484) coverage. You may use Python type checkers like
66+
[mypy](http://mypy-lang.org/) to type check these modules:
67+
```console
68+
user:./kappa$ mypy compiler/transform
69+
user:./kappa$ mypy --ignore-missing-imports compiler/rt # The flag silences mypy re missing boto3 annotations.
70+
```

Diff for: compiler/.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
tests/*_transformed.py
2+
examples/*_transformed.py

0 commit comments

Comments
 (0)