ask-lang


Nameask-lang JSON
Version 1.4.6 PyPI version JSON
download
home_pagehttps://ask.edvard.dev
SummaryAsk is a modern open-source transpiled programming language, designed for building backend services and APIs. Ask reduces the amount of needed boilerplate code for setting up things like database connections and authentication to virtually zero lines.
upload_time2023-12-18 19:51:35
maintainer
docs_urlNone
authorEdvard Busck-Nielsen
requires_python>=3.8,<4.0
licenseGNU GPL v3.0
keywords ask programming language backend api rest tool
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            <img src="https://ask.edvard.dev/banner.png" alt="Ask">

# Ask

<!-- [![CircleCI](https://circleci.com/gh/circleci/circleci-docs.svg?style=svg)](https://circleci.com/gh/Buscedv/Ask) -->

## Introduction
Ask is an open source, dynamic, and transpiled programming language built for building backends and APIs. Ask directly transpiles to Python, more specifically Flask.

### Feature Highlights
- Built-in JWT Authentication.
- Super Simple Database Management.
- Syntax Inspired by Python.
- Built-in CORS Support.
- Reduces Boilerplate.
- Compatible with Python*

`* = You can import external Python modules and call them from you Ask code.`

## Easy to Learn
Ask's syntax is heavily inspired by Python, and can almost be considered to be a superset of Python. This means that picking up Ask is super easy if you’re already familiar with Python.

The main idea behind Ask is to simplify common backend actions (e.g. working with databases). Building a full database CRUD REST API with JWT authentication in Ask is very straight forward and simple and requires virtually zero lines of boilerplate code and no setup whatsoever.

## Extendable
Ask is a transpiled language (kind of like TypeScript) which means that it compiles the source code to another language that has a similar level of abstraction. In Ask's case, the target language is Python, more specifically a Flask app.

Flask is a very popular and well-established web framework for Python, so there's already a lot of tools, and services for deploying Flask apps.

The transpiled app is completely standalone and doesn't require Ask in any way.

## Installation (normal usage)
- You can install Ask from the PyPI. You can use `pip` but we recommend that you use [pipx](https://pipxproject.github.io/pipx/).
- `$ pipx install ask-lang`.
- Then run your apps with: `$ ask [your file].ask`.

## Run locally (for development)
1. Clone this repo: `https://github.com/Buscedv/Ask.git`.
2. Install [Poetry](https://python-poetry.org/).
3. Create a new virtual environment: `python3 venv venv`.
4. Activate it: `source venv/bin/activate`.
5. Install dependencies: `poetry install`.
6. (Optional but helpful in some cases) Run Ask in development mode: [Docs](https://docs.ask.edvard.dev/development-tools/running-in-development-mode1).

If you want to contribute please read the CONTRIBUTING.md file for code style, standards, etc.

## Example (Ask vs Flask)
Here is the same basic app with one GET route written in Ask and in Python with Flask.

### Ask
```python
products = [
  {
    name: 'Product 1',
    price: 30.0,
    qty: 300
  },
  {
    name: 'Product 2',
    price: 15.5,
    qty: 20
  }
]

@get('/api/v1/products'):
  respond({products: products})
```

### Flask
This is what the same application would look like in Flask.

```python
from flask import Flask, jsonify

app = Flask(__name__)

products = [
  {
    'name': 'Product 1',
    'price': 30.0,
    'qty': 300
  },
  {
    'name': 'Product 2',
    'price': 15.5,
    'qty': 20
  }
]

@app.route('/api/v1/products', methods=['GET'])
def get_products():
  return jsonify({'products': products})

if __name__ == '__main__':
  app.run()
```

As you can see Ask hides away all the clutter and boilerplate.

## Documentation
You can find the full documentation on [docs.ask.edvard.dev](https://docs.ask.edvard.dev).

## Contact
- Website: [ask.edvard.dev](https://ask.edvard.dev).
- Email: [me(a)edvard.dev](mailto:me@edvard.dev).
- GitHub: [Buscedv](https://github.com/Buscedv).

            

Raw data

            {
    "_id": null,
    "home_page": "https://ask.edvard.dev",
    "name": "ask-lang",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8,<4.0",
    "maintainer_email": "",
    "keywords": "ask,programming language,backend,api,rest,tool",
    "author": "Edvard Busck-Nielsen",
    "author_email": "me@edvard.dev",
    "download_url": "https://files.pythonhosted.org/packages/0d/7f/c1ff37243eea9a98ebcda5f2958b671fdbf25ecf71589a30ae1abbdf2775/ask_lang-1.4.6.tar.gz",
    "platform": null,
    "description": "<img src=\"https://ask.edvard.dev/banner.png\" alt=\"Ask\">\n\n# Ask\n\n<!-- [![CircleCI](https://circleci.com/gh/circleci/circleci-docs.svg?style=svg)](https://circleci.com/gh/Buscedv/Ask) -->\n\n## Introduction\nAsk is an open source, dynamic, and transpiled programming language built for building backends and APIs. Ask directly transpiles to Python, more specifically Flask.\n\n### Feature Highlights\n- Built-in JWT Authentication.\n- Super Simple Database Management.\n- Syntax Inspired by Python.\n- Built-in CORS Support.\n- Reduces Boilerplate.\n- Compatible with Python*\n\n`* = You can import external Python modules and call them from you Ask code.`\n\n## Easy to Learn\nAsk's syntax is heavily inspired by Python, and can almost be considered to be a superset of Python. This means that picking up Ask is super easy if you\u2019re already familiar with Python.\n\nThe main idea behind Ask is to simplify common backend actions (e.g. working with databases). Building a full database CRUD REST API with JWT authentication in Ask is very straight forward and simple and requires virtually zero lines of boilerplate code and no setup whatsoever.\n\n## Extendable\nAsk is a transpiled language (kind of like TypeScript) which means that it compiles the source code to another language that has a similar level of abstraction. In Ask's case, the target language is Python, more specifically a Flask app.\n\nFlask is a very popular and well-established web framework for Python, so there's already a lot of tools, and services for deploying Flask apps.\n\nThe transpiled app is completely standalone and doesn't require Ask in any way.\n\n## Installation (normal usage)\n- You can install Ask from the PyPI. You can use `pip` but we recommend that you use [pipx](https://pipxproject.github.io/pipx/).\n- `$ pipx install ask-lang`.\n- Then run your apps with: `$ ask [your file].ask`.\n\n## Run locally (for development)\n1. Clone this repo: `https://github.com/Buscedv/Ask.git`.\n2. Install [Poetry](https://python-poetry.org/).\n3. Create a new virtual environment: `python3 venv venv`.\n4. Activate it: `source venv/bin/activate`.\n5. Install dependencies: `poetry install`.\n6. (Optional but helpful in some cases) Run Ask in development mode: [Docs](https://docs.ask.edvard.dev/development-tools/running-in-development-mode1).\n\nIf you want to contribute please read the CONTRIBUTING.md file for code style, standards, etc.\n\n## Example (Ask vs Flask)\nHere is the same basic app with one GET route written in Ask and in Python with Flask.\n\n### Ask\n```python\nproducts = [\n  {\n    name: 'Product 1',\n    price: 30.0,\n    qty: 300\n  },\n  {\n    name: 'Product 2',\n    price: 15.5,\n    qty: 20\n  }\n]\n\n@get('/api/v1/products'):\n  respond({products: products})\n```\n\n### Flask\nThis is what the same application would look like in Flask.\n\n```python\nfrom flask import Flask, jsonify\n\napp = Flask(__name__)\n\nproducts = [\n  {\n    'name': 'Product 1',\n    'price': 30.0,\n    'qty': 300\n  },\n  {\n    'name': 'Product 2',\n    'price': 15.5,\n    'qty': 20\n  }\n]\n\n@app.route('/api/v1/products', methods=['GET'])\ndef get_products():\n  return jsonify({'products': products})\n\nif __name__ == '__main__':\n  app.run()\n```\n\nAs you can see Ask hides away all the clutter and boilerplate.\n\n## Documentation\nYou can find the full documentation on [docs.ask.edvard.dev](https://docs.ask.edvard.dev).\n\n## Contact\n- Website: [ask.edvard.dev](https://ask.edvard.dev).\n- Email: [me(a)edvard.dev](mailto:me@edvard.dev).\n- GitHub: [Buscedv](https://github.com/Buscedv).\n",
    "bugtrack_url": null,
    "license": "GNU GPL v3.0",
    "summary": "Ask is a modern open-source transpiled programming language, designed for building backend services and APIs. Ask reduces the amount of needed boilerplate code for setting up things like database connections and authentication to virtually zero lines.",
    "version": "1.4.6",
    "project_urls": {
        "Homepage": "https://ask.edvard.dev",
        "Repository": "https://github.com/Buscedv/Ask"
    },
    "split_keywords": [
        "ask",
        "programming language",
        "backend",
        "api",
        "rest",
        "tool"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f3900887b30310f7e980cea316d9ec5dfd67b20549f5dbbe087c66a766d82c67",
                "md5": "464e850db51239abc393ad42a60b53e3",
                "sha256": "92f77b0e0b05149f9fdbbc5bded6b1bc5b10681bd1860dbf4c3ce754372e4795"
            },
            "downloads": -1,
            "filename": "ask_lang-1.4.6-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "464e850db51239abc393ad42a60b53e3",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8,<4.0",
            "size": 58220,
            "upload_time": "2023-12-18T19:51:33",
            "upload_time_iso_8601": "2023-12-18T19:51:33.582337Z",
            "url": "https://files.pythonhosted.org/packages/f3/90/0887b30310f7e980cea316d9ec5dfd67b20549f5dbbe087c66a766d82c67/ask_lang-1.4.6-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0d7fc1ff37243eea9a98ebcda5f2958b671fdbf25ecf71589a30ae1abbdf2775",
                "md5": "b861f1d8ff8bd387488ad1a8c0457efe",
                "sha256": "9c03938d1a89508bb93f1f4319710b515bcd80745f709c601bdd6f5c852805ed"
            },
            "downloads": -1,
            "filename": "ask_lang-1.4.6.tar.gz",
            "has_sig": false,
            "md5_digest": "b861f1d8ff8bd387488ad1a8c0457efe",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8,<4.0",
            "size": 37459,
            "upload_time": "2023-12-18T19:51:35",
            "upload_time_iso_8601": "2023-12-18T19:51:35.080487Z",
            "url": "https://files.pythonhosted.org/packages/0d/7f/c1ff37243eea9a98ebcda5f2958b671fdbf25ecf71589a30ae1abbdf2775/ask_lang-1.4.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-12-18 19:51:35",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Buscedv",
    "github_project": "Ask",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": false,
    "circle": true,
    "lcname": "ask-lang"
}
        
Elapsed time: 0.15664s