-
-
Notifications
You must be signed in to change notification settings - Fork 5
/
index.html
177 lines (170 loc) · 9.88 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
<!DOCTYPE html>
<!--
Hyperspace by HTML5 UP
html5up.net | @ajlkn
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
-->
<html>
<head>
<title>Fano Framework - Web application framework for modern Pascal programming language</title>
<meta charset="utf-8" />
<meta name="description" content="Fano Framework, web application framework for modern Pascal programming language.">
<meta name="keywords" content="fano, web application, framework, pascal, programming, language, free pascal">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
<meta property="og:title" content="Fano Framework"/>
<meta property="og:site_name" content="Fano Framework"/>
<meta property="og:url" content="https://fanoframework.github.io"/>
<meta property="og:description" content="Fano Framework, web application framework for modern Pascal programming language."/>
<meta property="og:type" content="website"/>
<link rel="shortcut icon" href="/assets/images/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/assets/css/main.css" />
<noscript><link rel="stylesheet" href="/assets/css/noscript.css" /></noscript>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-169517371-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-169517371-1');
</script>
</head>
<body class="is-preload">
<!-- Sidebar -->
<section id="sidebar">
<div class="inner">
<nav>
<ul>
<li><a href="#intro">Intro</a></li>
<li><a href="#feature">Features</a></li>
<li><a href="/getting-started">Getting Started</a></li>
<li><a href="/documentation">Documentation</a></li>
<li><a href="https://www.youtube.com/@fanoframework">Video Tutorials</a></li>
</ul>
</nav>
</div>
</section>
<!-- Wrapper -->
<div id="wrapper">
<!-- Intro -->
<section id="intro" class="wrapper style1 fullscreen">
<div class="inner">
<h1>Fano Framework</h1>
<p>Web application framework for modern Pascal programming language.
<span style="display: block;"><a href="https://github.com/fanoframework/fano/blob/master/LICENSE"><img src="https://img.shields.io/github/license/fanoframework/fano.svg" alt="MIT License"></a>
<a href="https://github.com/fanoframework/fano/releases"><img src="https://img.shields.io/github/v/release/fanoframework/fano.svg" alt="Latest Release"></a>
</span>
</p>
<ul class="actions">
<li><a href="https://github.com/fanoframework/fano"
class="button primary icon fa-github">View Source</a></li>
<li><a href="/examples"
class="button primary">Sample Applications</a></li>
<li><a href="/getting-started" class="button primary">Getting Started</a></li>
</ul>
</div>
</section>
<section id="feature" class="wrapper style2">
<div class="inner">
<h2>Features</h2>
<p>Some of available features are:</p>
<div class="features">
<section>
<span class="icon major fa-code"></span>
<h3>Routing</h3>
<p><a href="/dispatcher">Dispatcher</a> will <a href="/working-with-router">match route</a>
and call appropriate controller to handle <a href="/working-with-request">request</a> which returns <a href="/working-with-response">response</a>.
</p>
</section>
<section>
<span class="icon major fa-chain"></span>
<h3>Middlewares</h3>
<p><a href="/middlewares">Middleware</a> system. Many parts of Fano Framework are implemented as middleware, from
<a href="/security/csrf-protection">cross site request forgery (CSRF) protection</a>,
<a href="/security/handling-cors">cross origin resource sharing (CORS)</a>,
<a href="/security/form-validation">input validation</a>,
<a href="/security/http-authentication">HTTP authentication</a> to
<a href="/utilities/rate-limit">rate limiting</a>
</p>
</section>
<section>
<span class="icon major fa-sitemap"></span>
<h3>Dependency Container</h3>
<p><a href="/dependency-container">Dependency container</a> that manages
<a href="/working-with-application">application</a> dependencies.</p>
</section>
<section>
<span class="icon major fa-desktop"></span>
<h3>MVC</h3>
<p><a href="/working-with-models">Model</a> <a href="/working-with-views">View</a> <a href="/working-with-controllers">Controller</a>
paradigm for better code organization.
In addition, <a href="https://github.com/fanoframework/fano-cli">Fano CLI</a> helps developer
<a href="/scaffolding-with-fano-cli">scaffolding MVC web application</a> faster.
</p>
</section>
<section>
<span class="icon major fa-star"></span>
<h3>Minimal external dependencies</h3>
<p>Fano Framework requires minimal external libraries to work. By default, it requires
only <a href="https://www.freepascal.org/">Free Pascal >= 3.0</a> compiler and its run-time libraries.
To use, add <code>fano</code> unit into your application.
</p>
</section>
<section>
<span class="icon major fa-unlock"></span>
<h3>Extensible</h3>
<p>Fano Framework aims to be extensible. From
<a href="/security/form-validation">form validation</a> to <a href="/working-with-session">session</a> to <a href="/utilities/using-loggers">logging</a>,
you can always replace any software components with your own implementation if required.</p>
</section>
<section>
<span class="icon major fa-cloud"></span>
<h3>Multiple Deployment Target</h3>
<p>Fano Framework supports <a href="/deployment">multiple deployment targets</a>.
You can run as <a href="/deployment/cgi">CGI</a>,
<a href="/deployment/fastcgi">FastCGI</a>,
<a href="/deployment/scgi">SCGI</a> or <a href="/deployment/uwsgi">uwsgi</a> web application with
Apache or nginx web server
or as <a href="/deployment/standalone-web-server">standalone HTTP web application</a>.
You can also <a href="/deployment/docker">deploy with Docker container</a>. It supports <a href="/working-with-application#use-ipv6-address">IPv6 address</a> too.
Currently, it supports Linux and FreeBSD only. Support for Windows is planned, but for now, you need to use Docker to deploy on Windows.
</p>
</section>
<section>
<span class="icon major fa-group"></span>
<h3>Open source</h3>
<p>Fano Framework uses <a href="https://github.com/fanoframework/fano/blob/master/LICENSE">MIT license</a>.
You are free to do anything with it.
We do love contributions from anyone. Feedbacks, bug reports, pull requests are welcome.
<a href="https://github.com/fanoframework/fanoframework.github.io">You can even edit this page</a>.
</p>
</section>
</div>
<ul class="actions">
<li><a href="/documentation" class="button">Learn more</a></li>
<li><a href="https://www.youtube.com/@fanoframework"
class="button icon fa-youtube-play">Video Tutorials</a></li>
</ul>
</div>
</section>
</div>
<!-- Footer -->
<footer id="footer" class="wrapper style1-alt">
<div class="inner">
<ul class="menu">
<li>© juhara.com. All rights reserved.</li>
<li><a class="icon fa-github" href="https://github.com/fanoframework/fanoframework.github.io"> Edit Documentation</a></li>
<li><a class="icon fa-youtube-play" href="https://www.youtube.com/@fanoframework"> Fano Framework video tutorials</a></li>
<li>Template based on <a href="https://html5up.net/hyperspace">Hyperspace</a></li>
</ul>
</div>
</footer>
<!-- Scripts -->
<script src="/assets/js/jquery.min.js"></script>
<script src="/assets/js/jquery.scrollex.min.js"></script>
<script src="/assets/js/jquery.scrolly.min.js"></script>
<script src="/assets/js/browser.min.js"></script>
<script src="/assets/js/breakpoints.min.js"></script>
<script src="/assets/js/util.js"></script>
<script src="/assets/js/main.js"></script>
</body>
</html>