Current section

14 Versions

Jump to

Compare versions

73 files changed
+6948 additions
-6882 deletions
  @@ -0,0 +1,22 @@
1 + The MIT License
2 +
3 + Copyright (c) 2014-2025 Chris McCord
4 + Copyright (c) 2025-now Zeke Dou
5 +
6 + Permission is hereby granted, free of charge, to any person obtaining a copy
7 + of this software and associated documentation files (the "Software"), to deal
8 + in the Software without restriction, including without limitation the rights
9 + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 + copies of the Software, and to permit persons to whom the Software is
11 + furnished to do so, subject to the following conditions:
12 +
13 + The above copyright notice and this permission notice shall be included in all
14 + copies or substantial portions of the Software.
15 +
16 + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 + SOFTWARE.
  @@ -1,22 +0,0 @@
1 - The MIT License
2 -
3 - Copyright (c) 2014-2025 Chris McCord
4 - Copyright (c) 2025-now Zeke Dou
5 -
6 - Permission is hereby granted, free of charge, to any person obtaining a copy
7 - of this software and associated documentation files (the "Software"), to deal
8 - in the Software without restriction, including without limitation the rights
9 - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 - copies of the Software, and to permit persons to whom the Software is
11 - furnished to do so, subject to the following conditions:
12 -
13 - The above copyright notice and this permission notice shall be included in all
14 - copies or substantial portions of the Software.
15 -
16 - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 - SOFTWARE.
  @@ -1,8 +1,8 @@
1 1 # Combo
2 2
3 - Combines the good parts of modern web development.
3 + A web framework, that combines the good parts of modern web development.
4 4
5 - [![Build Status](https://github.com/combo-team/combo/workflows/CI/badge.svg)](https://github.com/combo-team/combo/actions/workflows/ci.yml) [![Hex.pm](https://img.shields.io/hexpm/v/combo.svg)](https://hex.pm/packages/combo)
5 + [![Build Status](https://github.com/combo-lab/combo/workflows/CI/badge.svg)](https://github.com/combo-lab/combo/actions/workflows/ci.yml) [![Hex.pm](https://img.shields.io/hexpm/v/combo.svg)](https://hex.pm/packages/combo)
6 6
7 7 ## About
8 8
  @@ -27,30 +27,15 @@ Read the [documentation](https://hexdocs.pm/combo).
27 27
28 28 ## Contributing
29 29
30 - We appreciate any contribution to Combo. Check our [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) and [CONTRIBUTING.md](CONTRIBUTING.md) guides for more information. We usually keep a list of features and bugs in the [issue tracker][4].
30 + We appreciate any contribution to Combo. Check our [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) and [CONTRIBUTING.md](CONTRIBUTING.md) guides for more information. We usually keep a list of features and bugs in the [issue tracker](https://github.com/combo-lab/combo/issues).
31 31
32 32 ### Building from source
33 33
34 - To build Combo only:
35 -
36 - ```console
37 - $ mix deps.get
38 - $ mix compile
39 - ```
40 -
41 - To build Combo.js only:
42 -
43 - ```console
44 - $ mix assets.deps.get
45 - $ mix assets.build
46 - ```
47 -
48 - To build Combo and Combo.js together:
34 + To build Combo and its related npm-packages and assets:
49 35
50 36 ```bash
51 37 $ mix setup
52 - $ mix compile
53 - $ mix assets.build
38 + $ mix build
54 39 ```
55 40
56 41 To build the documentation:
  @@ -62,4 +47,4 @@ $ mix docs
62 47
63 48 ## License
64 49
65 - [MIT](LICENSE.txt)
50 + [MIT](./LICENSE)
  @@ -1,28 +1,33 @@
1 - {<<"links">>,[{<<"GitHub">>,<<"https://github.com/combo-team/combo">>}]}.
1 + {<<"links">>,
2 + [{<<"GitHub">>,<<"https://github.com/combo-lab/combo">>},
3 + {<<"Changelog">>,
4 + <<"https://github.com/combo-lab/combo/blob/v0.3.0/CHANGELOG.md">>}]}.
2 5 {<<"name">>,<<"combo">>}.
3 - {<<"version">>,<<"0.2.1">>}.
4 - {<<"description">>,<<"Combines the good parts of modern web development.">>}.
6 + {<<"version">>,<<"0.3.0">>}.
7 + {<<"description">>,
8 + <<"A web framework, that combines the good parts of modern web development.">>}.
5 9 {<<"elixir">>,<<"~> 1.18">>}.
6 10 {<<"app">>,<<"combo">>}.
7 11 {<<"licenses">>,[<<"MIT">>]}.
8 12 {<<"files">>,
9 13 [<<"lib">>,<<"lib/mix">>,<<"lib/mix/tasks">>,
10 - <<"lib/mix/tasks/combo_digest_clean.ex">>,
14 + <<"lib/mix/tasks/combo_static_clean.ex">>,
11 15 <<"lib/mix/tasks/combo_gen_secret.ex">>,<<"lib/mix/tasks/combo_serve.ex">>,
12 16 <<"lib/mix/tasks/combo_routes.ex">>,<<"lib/mix/tasks/combo.ex">>,
13 - <<"lib/mix/tasks/combo_digest.ex">>,<<"lib/combo.ex">>,<<"lib/combo">>,
14 - <<"lib/combo/filtered_params.ex">>,<<"lib/combo/naming.ex">>,
15 - <<"lib/combo/html.ex">>,<<"lib/combo/channel.ex">>,
16 - <<"lib/combo/verified_routes.ex">>,<<"lib/combo/safe_html.ex">>,
17 - <<"lib/combo/code_reloader">>,<<"lib/combo/code_reloader/proxy.ex">>,
17 + <<"lib/mix/tasks/combo_static_digest.ex">>,<<"lib/combo.ex">>,
18 + <<"lib/combo">>,<<"lib/combo/filtered_params.ex">>,
19 + <<"lib/combo/naming.ex">>,<<"lib/combo/html.ex">>,
20 + <<"lib/combo/channel.ex">>,<<"lib/combo/verified_routes.ex">>,
21 + <<"lib/combo/safe_html.ex">>,<<"lib/combo/code_reloader">>,
22 + <<"lib/combo/code_reloader/proxy.ex">>,
18 23 <<"lib/combo/code_reloader/mix_listener.ex">>,
19 24 <<"lib/combo/code_reloader/server.ex">>,<<"lib/combo/param.ex">>,
20 - <<"lib/combo/live_reloader.ex">>,<<"lib/combo/test">>,
21 - <<"lib/combo/test/html_test.ex">>,<<"lib/combo/test/html_test">>,
22 - <<"lib/combo/test/html_test/dom.ex">>,<<"lib/combo/test/channel_test.ex">>,
23 - <<"lib/combo/test/conn_test.ex">>,<<"lib/combo/presence.ex">>,
24 - <<"lib/combo/logger.ex">>,<<"lib/combo/transports">>,
25 - <<"lib/combo/transports/long_poll.ex">>,
25 + <<"lib/combo/live_reloader.ex">>,<<"lib/combo/cache.ex">>,
26 + <<"lib/combo/test">>,<<"lib/combo/test/html_test.ex">>,
27 + <<"lib/combo/test/html_test">>,<<"lib/combo/test/html_test/dom.ex">>,
28 + <<"lib/combo/test/channel_test.ex">>,<<"lib/combo/test/conn_test.ex">>,
29 + <<"lib/combo/presence.ex">>,<<"lib/combo/logger.ex">>,
30 + <<"lib/combo/transports">>,<<"lib/combo/transports/long_poll.ex">>,
26 31 <<"lib/combo/transports/long_poll_server.ex">>,
27 32 <<"lib/combo/transports/websocket.ex">>,<<"lib/combo/template">>,
28 33 <<"lib/combo/template/exs_engine.ex">>,<<"lib/combo/template/ceex_engine">>,
  @@ -55,42 +60,54 @@
55 60 <<"lib/combo/controller">>,<<"lib/combo/controller/pipeline.ex">>,
56 61 <<"lib/combo/code_reloader.ex">>,<<"lib/combo/router.ex">>,
57 62 <<"lib/combo/channel">>,<<"lib/combo/channel/server.ex">>,
58 - <<"lib/combo/conn.ex">>,<<"lib/combo/socket.ex">>,<<"lib/combo/digester">>,
59 - <<"lib/combo/digester/gzip.ex">>,<<"lib/combo/digester/compressor.ex">>,
63 + <<"lib/combo/conn.ex">>,<<"lib/combo/socket.ex">>,<<"lib/combo/static">>,
64 + <<"lib/combo/static/cache.ex">>,<<"lib/combo/static/compressor">>,
65 + <<"lib/combo/static/compressor/gzip.ex">>,
66 + <<"lib/combo/static/compressor.ex">>,<<"lib/combo/static/digester.ex">>,
60 67 <<"lib/combo/endpoint">>,<<"lib/combo/endpoint/adapter.ex">>,
61 - <<"lib/combo/endpoint/supervisor.ex">>,
68 + <<"lib/combo/endpoint/supervisor.ex">>,<<"lib/combo/endpoint/config.ex">>,
62 69 <<"lib/combo/endpoint/cowboy2_adapter.ex">>,
63 70 <<"lib/combo/endpoint/bandit_adapter.ex">>,
64 71 <<"lib/combo/endpoint/watcher.ex">>,
65 72 <<"lib/combo/endpoint/render_errors.ex">>,
66 73 <<"lib/combo/endpoint/sync_code_reload_plug.ex">>,
67 - <<"lib/combo/endpoint.ex">>,<<"lib/combo/digester.ex">>,
74 + <<"lib/combo/endpoint/persistent.ex">>,<<"lib/combo/endpoint.ex">>,
68 75 <<"lib/combo/helpers">>,<<"lib/combo/helpers/keyword_helper.ex">>,
69 76 <<"lib/combo/debug.ex">>,<<"lib/combo/exceptions.ex">>,
70 77 <<"lib/combo/socket">>,<<"lib/combo/socket/message.ex">>,
71 - <<"lib/combo/socket/transport.ex">>,<<"lib/combo/socket/serializers">>,
78 + <<"lib/combo/socket/cache.ex">>,<<"lib/combo/socket/transport.ex">>,
79 + <<"lib/combo/socket/serializers">>,
72 80 <<"lib/combo/socket/serializers/v1_json_serializer.ex">>,
73 81 <<"lib/combo/socket/serializers/v2_json_serializer.ex">>,
74 82 <<"lib/combo/socket/pool_supervisor.ex">>,
75 83 <<"lib/combo/socket/serializer.ex">>,<<"lib/combo/live_reloader">>,
76 84 <<"lib/combo/live_reloader/channel.ex">>,
77 85 <<"lib/combo/live_reloader/server.ex">>,
78 - <<"lib/combo/live_reloader/socket.ex">>,<<"lib/combo/flash.ex">>,
79 - <<"lib/combo/template.ex">>,<<"lib/combo/router">>,
86 + <<"lib/combo/live_reloader/socket.ex">>,<<"lib/combo/static.ex">>,
87 + <<"lib/combo/flash.ex">>,<<"lib/combo/template.ex">>,<<"lib/combo/router">>,
80 88 <<"lib/combo/router/route.ex">>,<<"lib/combo/router/console_formatter.ex">>,
81 89 <<"lib/combo/router/resource.ex">>,<<"lib/combo/router/scope.ex">>,
82 - <<"mix.exs">>,<<"priv">>,<<"priv/logo">>,<<"priv/logo/combo.svg">>,
83 - <<"priv/static">>,<<"priv/static/html.js">>,<<"priv/static/html.js.map">>,
84 - <<"priv/static/socket.min.js.map">>,<<"priv/static/html.esm.js.map">>,
85 - <<"priv/static/socket.min.js">>,<<"priv/static/html.min.js">>,
86 - <<"priv/static/socket.js.map">>,<<"priv/static/socket.cjs.js.map">>,
87 - <<"priv/static/socket.js">>,<<"priv/static/live_reloader.min.js.map">>,
88 - <<"priv/static/html.min.js.map">>,<<"priv/static/socket.esm.js">>,
89 - <<"priv/static/socket.esm.js.map">>,<<"priv/static/live_reloader.min.js">>,
90 - <<"priv/static/html.cjs.js">>,<<"priv/static/html.esm.js">>,
91 - <<"priv/static/socket.cjs.js">>,<<"priv/static/html.cjs.js.map">>,
92 - <<"package.json">>,<<".formatter.exs">>,<<"README.md">>,<<"CHANGELOG.md">>,
93 - <<"LICENSE.txt">>]}.
90 + <<"priv">>,<<"priv/logo">>,<<"priv/logo/combo.svg">>,<<"priv/static">>,
91 + <<"priv/static/live_reloader.min.js.map">>,
92 + <<"priv/static/live_reloader.min.js">>,<<"mix.exs">>,<<".formatter.exs">>,
93 + <<"README.md">>,<<"CHANGELOG.md">>,<<"LICENSE">>,
94 + <<"npm-packages/combo/package.json">>,<<"npm-packages/combo/dist">>,
95 + <<"npm-packages/combo/dist/html.js">>,
96 + <<"npm-packages/combo/dist/html.js.map">>,
97 + <<"npm-packages/combo/dist/socket.min.js.map">>,
98 + <<"npm-packages/combo/dist/html.esm.js.map">>,
99 + <<"npm-packages/combo/dist/socket.min.js">>,
100 + <<"npm-packages/combo/dist/html.min.js">>,
101 + <<"npm-packages/combo/dist/socket.js.map">>,
102 + <<"npm-packages/combo/dist/socket.cjs.js.map">>,
103 + <<"npm-packages/combo/dist/socket.js">>,
104 + <<"npm-packages/combo/dist/html.min.js.map">>,
105 + <<"npm-packages/combo/dist/socket.esm.js">>,
106 + <<"npm-packages/combo/dist/socket.esm.js.map">>,
107 + <<"npm-packages/combo/dist/html.cjs.js">>,
108 + <<"npm-packages/combo/dist/html.esm.js">>,
109 + <<"npm-packages/combo/dist/socket.cjs.js">>,
110 + <<"npm-packages/combo/dist/html.cjs.js.map">>]}.
94 111 {<<"requirements">>,
95 112 [[{<<"name">>,<<"plug">>},
96 113 {<<"app">>,<<"plug">>},
  @@ -1,6 +1,6 @@
1 1 defmodule Combo do
2 2 @moduledoc """
3 - Combines the good parts of modern web development.
3 + A web framework, that combines the good parts of modern web development.
4 4 """
5 5
6 6 use Application
Loading more files…