{"id":9243515,"url":"https://github.com/m-kus/xeus-fift","last_synced_at":"2025-07-23T06:35:38.472Z","repository":{"id":98725871,"uuid":"219471888","full_name":"m-kus/xeus-fift","owner":"m-kus","description":"🍬 Jupyter kernels for Fift and FunC languages","archived":false,"fork":false,"pushed_at":"2019-12-10T09:28:25.000Z","size":241,"stargazers_count":21,"open_issues_count":1,"forks_count":5,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-09T07:02:37.711Z","etag":null,"topics":["fift","fift-language","func","func-language","jupyter-kernels","jupyter-notebook","telegram","telegram-open-network","ton"],"latest_commit_sha":null,"homepage":"https://mybinder.org/v2/gh/atomex-me/xeus-fift/binder?filepath=func_cheat_sheet.ipynb","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/m-kus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-11-04T10:11:27.000Z","updated_at":"2023-08-28T19:36:18.000Z","dependencies_parsed_at":"2023-05-24T23:45:40.962Z","dependency_job_id":null,"html_url":"https://github.com/m-kus/xeus-fift","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/m-kus/xeus-fift","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-kus%2Fxeus-fift","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-kus%2Fxeus-fift/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-kus%2Fxeus-fift/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-kus%2Fxeus-fift/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/m-kus","download_url":"https://codeload.github.com/m-kus/xeus-fift/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-kus%2Fxeus-fift/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265447898,"owners_count":23767064,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fift","fift-language","func","func-language","jupyter-kernels","jupyter-notebook","telegram","telegram-open-network","ton"],"created_at":"2024-05-08T00:09:45.670Z","updated_at":"2025-07-23T06:35:38.458Z","avatar_url":"https://github.com/m-kus.png","language":"C++","funding_links":[],"categories":["SDKs, Client Libraries and toolkits"],"sub_categories":[],"readme":"# Xeus-Fift\n[![Build Status](https://travis-ci.org/atomex-me/xeus-fift.svg?branch=master)](https://travis-ci.org/atomex-me/xeus-fift)\n[![Docker Build Status](https://img.shields.io/docker/cloud/build/atomex/xeus-fift)](https://hub.docker.com/r/atomex/xeus-fift)\n[![made_with xeus](https://img.shields.io/badge/made_with-xeus-yellowgreen.svg)](https://github.com/QuantStack/xeus)\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/atomex-me/xeus-fift/binder?filepath=func_cheat_sheet.ipynb)\n\nJupyter kernels for the Fift and FunC languages (and TVM assembler) \n\n![Xeus-Fift](https://i.imgur.com/0UtNcmL.gif)\n\n## Features\n\n### Fift kernel\nAside from the convenient Jupyter interactive workflow this kernel provides:\n\n* Syntax highlighting\n* Words autocomplete via `Tab` (including those which are included or defined by you)\n* In-place docstrings via `Shift+Tab` (for words defined in FiftBase and TVM pdf files)\n\n### FunC kernel\n* Syntax highlighting including (non)const methods and pseudo-namespaces\n* Autoindentation\n* Autocomplete by `Tab` using keywords and global functions\n* Inspect function signature by `Shift+Tab`        \n* Extra: `#include` macro and `print` debug helper\n\n## FunC Workflow\n1. At the top-level of each cell you can use `#include \"path/to/file\"` macro to load functions from a `.fc` file. They will be available throughout the notebook.\n2. You can define multiple functions in any cell, they will also be available from everywhere.\n3. At the end of the cell (using separate cell is recommended) you can write piece of code not wrapped by a function definition. It will be automatically used as `main` body. Such code cannot be accessed from another cell.\n4. Alternatively, you can specify `main` function explicitly.\n5. You can omit `return` and trailing `;` in the main code block - they will be added during the execution.\n6. Note, that every time you re-run a cell, all functions defined in this cell are being overwritten.\n\n### Examples\nReturn constant\n```cpp\n\u003c\u003c\u003c 2 + 2\n\u003e\u003e\u003e 4\n```\n\nReturn variable\n```cpp\n\u003c\u003c\u003c int i = 42\n\u003e\u003e\u003e 42\n```\n\nReturn function result\n```cpp\n\u003c\u003c\u003c int sum(int a, int b) { return a + b; }\n... sum(2, 2)\n\u003e\u003e\u003e 4\n```\n\nPrint variables\n```cpp\n\u003c\u003c\u003c int i = 1;\n... int j = 2;\n... print(i);\n... print(j);\n\u003e\u003e\u003e 2 1\n```\n\n## How to use\n\n### Run online!\nPowered by awesome Binder: https://mybinder.org/v2/gh/atomex-me/xeus-fift/binder?filepath=func_cheat_sheet.ipynb\n\n### Run in docker\n0. Get the latest image from dockerhub (only when new releases are published)\n```\ndocker pull atomex/xeus-fift\n```\n1. Create container using verified docker image:\n```\ndocker run --rm -it -p 127.0.0.1:8888:8888 -v $(pwd):/home/jupyter/notebooks atomex/xeus-fift\n```\n2. Open the link from container output in your browser\n3. Save notebooks in the mapped folder in order not to loose them\n\n### Install .deb package\n1. Check out the latest release tag at https://github.com/atomex-me/xeus-fift/releases\n2. Download and install the package\n```\nwget https://github.com/atomex-me/xeus-fift/releases/download/0.1.0/xeus-fift_0.1.0-1_amd64.deb -P /tmp/\nsudo dpkg -i /tmp/xeus-fift_0.1.0-1_amd64.deb\n```\n3. Check that Jupyter is now supporting Fift and FunC kernels\n```\njupyter kernelspec list\n```\n\n### Install from sources\n1. Ensure the following packages are installed: `libssl-dev zlib1g-dev uuid-dev`\n2. Get the sources, build and install\n```\ngit clone https://github.com/atomex-me/xeus-fift\ncd xeus-fift\nmkdir build\ncd build\ncmake ..\nmake xeus-fift\nsudo make install\n```\n3. Check that Jupyter is now supporting Fift and FunC kernels\n```\njupyter kernelspec list\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm-kus%2Fxeus-fift","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fm-kus%2Fxeus-fift","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm-kus%2Fxeus-fift/lists"}