All Projects → alchemy-swift → Alchemy

alchemy-swift / Alchemy

Licence: mit
Elegant, batteries included web framework for Swift.

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Alchemy

Vapor
💧 A server-side Swift HTTP web framework.
Stars: ✭ 21,194 (+19524.07%)
Mutual labels:  web-framework, server
Ego
Ego is a full-stack web framework written in Go, lightweight and efficient front-end component solutions, based on gin. The front-end is compiled, does not affect the back-end.
Stars: ✭ 185 (+71.3%)
Mutual labels:  web-framework, server
Faygo
Faygo is a fast and concise Go Web framework that can be used to develop high-performance web app(especially API) with fewer codes. Just define a struct handler, faygo will automatically bind/verify the request parameters and generate the online API doc.
Stars: ✭ 1,557 (+1341.67%)
Mutual labels:  web-framework, server
Iris
The fastest HTTP/2 Go Web Framework. AWS Lambda, gRPC, MVC, Unique Router, Websockets, Sessions, Test suite, Dependency Injection and more. A true successor of expressjs and laravel | 谢谢 https://github.com/kataras/iris/issues/1329 |
Stars: ✭ 21,587 (+19887.96%)
Mutual labels:  web-framework, server
Gaea
Gaea is a Gin-based web framework, reference gin https://github.com/gin-gonic/gin
Stars: ✭ 105 (-2.78%)
Mutual labels:  web-framework
Valval
The fastest web framework in V language (vlang)
Stars: ✭ 103 (-4.63%)
Mutual labels:  web-framework
Async Graphql
A GraphQL server library implemented in Rust
Stars: ✭ 1,377 (+1175%)
Mutual labels:  server
Wait For Localhost Cli
Wait for localhost to be ready from the command-line
Stars: ✭ 101 (-6.48%)
Mutual labels:  server
Micro
Micro is a distributed cloud operating system
Stars: ✭ 10,778 (+9879.63%)
Mutual labels:  server
Fitness android
Android健身app,在普通健身app的基础上加入了社交功能(类似KEEP、FEEL、轻+、减约、薄荷等) 毕设项目
Stars: ✭ 107 (-0.93%)
Mutual labels:  server
Blog
Lawler's Blog 不定期分享一些前端技术
Stars: ✭ 102 (-5.56%)
Mutual labels:  server
New Idea Server
idea-license-server被封了,以后资源我都上传到百度云上,这里就不上传资源了,只做技术解答
Stars: ✭ 103 (-4.63%)
Mutual labels:  server
Telegram Qt
Qt-based library for Telegram network
Stars: ✭ 105 (-2.78%)
Mutual labels:  server
Server Components Mdx Demo
React server components + MDX
Stars: ✭ 102 (-5.56%)
Mutual labels:  server
Picfit
An image resizing server written in Go
Stars: ✭ 1,589 (+1371.3%)
Mutual labels:  server
Server Stats
Statsy is a easy to use open source PHP tool for developers, that allows you to return various types of information about your server.
Stars: ✭ 101 (-6.48%)
Mutual labels:  server
Mist Ce
Mist is an open source, multi-cloud management platform
Stars: ✭ 1,391 (+1187.96%)
Mutual labels:  server
Cli
Repository for reporting issues related to the Symfony CLI
Stars: ✭ 106 (-1.85%)
Mutual labels:  server
Cottage
Simple, fast HTTP router on koa.js.
Stars: ✭ 103 (-4.63%)
Mutual labels:  web-framework
Ts3admin.class
The ts3admin.class is a powerful api for communication with Teamspeak 3 Servers from your website! Your creativity knows no bounds!
Stars: ✭ 103 (-4.63%)
Mutual labels:  server

Elegant, batteries included web framework for Swift.

Swift Version Latest Release License

struct App: Application {
    func setup() {
        self.get {
            "Hello World!"
        }
    }
}

App.launch()

Features

  • Fast, trie based routing.
  • Customizable middleware.
  • First class support for Plot, a typesafe HTML DSL.
  • Expressive ORM and query builder with out of the box support for Postgres and MySQL.
  • Database agnostic schema migrations.
  • Cron-like job scheduling.
  • Powerful dependency injection.
  • Typesafe API definitions, sharable between Swift clients & server.
  • Concise, elegant APIs built with the best parts of Swift.
  • Extensive docs and fully featured quickstart projects.

Installation

Quickstart

The Alchemy CLI can help you get started with one of the Quickstart templates. It is installable with Mint.

mint install alchemy-swift/[email protected]
alchemy new MyNewProject

You'll be guided through picking a new project template, either Backend or Fullstack.

Swift Package Manager

Alchemy is also installable through the Swift Package Manager. Until 1.0.0 is released, minor version changes might be breaking, so you may want to use upToNextMinor.

dependencies: [
    .package(url: "https://github.com/alchemy-swift/alchemy", .upToNextMinor(from: "0.1.0"))
    ...
],
targets: [
    .target(name: "MySwiftBackend", dependencies: [
        .product(name: "Alchemy", package: "alchemy"),
    ]),
]

Running It

You can run your server from Xcode or with

swift run

Check out the deployment guide for deploying to Linux or Docker.

Documentation

Docs

The Docs provide a step by step walkthrough of everything Alchemy has to offer. They also touch on essential core backend concepts for developers new to server side development.

Note: If something is confusing or difficult to understand please let us know on Discord!

Quickstarts

If you'd rather just jump into reading some code, the projects in Quickstarts/ are contrived apps for the purpose of showing working, documented examples of everything Alchemy can do. You can clone them with alchemy new or browse through their code on Github.

API Reference

The inline comments are extensive and full of examples. You can check them out in the codebase or on the Github wiki.

Why Alchemy?

Alchemy is designed to make your development experience...

  • Smooth. Elegant syntax, heavy documentation, and extensive guides touching on every feature. Alchemy is designed to help you build backends faster, not get in the way.
  • Simple. Context-switch less by writing full stack Swift. Keep the codebase simple with all your iOS, backend, and shared code in a single Xcode workspace.
  • Rapid. Quickly develop full stack features, end to end. Write less code by using supporting libraries (Papyrus, Fusion) to share code & provide type safety between your backend & Swift clients.
  • Safe. Swift is built for safety. Its typing, optionals, value semantics and error handling are leveraged throughout Alchemy to help protect you against thread safety issues, nil values and unexpected program state.
  • Swifty. Concise, expressive APIs built with the best parts of Swift.

Roadmap

Our top priorities right now are:

  1. Conversion of async APIs from EventLoopFuture to async/await as soon as it's released.
  2. Filling in missing core server pieces. Particularly,
    • HTTP/2 support
    • SSL/TLS support
    • Built in support for multipart/form-data & application/x-www-form-urlencoded
  3. Persistent, queued jobs backed by Redis / Memcached.

Contributing

Alchemy was designed to make it easy for you to contribute code. It's a single codebase with special attention given to readable code and documentation, so don't be afraid to dive in and submit PRs for bug fixes, documentation cleanup, forks or tune ups!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].