๐Ÿƒโ€โ™‚๏ธ Fast : An Efficient Way to Build Extensions

Version Date

Credit: The idea of the installation process and the project structures is inspired by RUSH. Thanks a ton, Shreyash :+1::gift:

:star2: Features


  • Annotations less source codes.
  • Java 8 support, including lambda expressions (()->).
  • Support for Kotlin language to writte extension components.
  • Support for Multi-component in extension.
  • Integration of new red helper/drop-down blocks.
  • Up-to-date ProGuard library 7.6.0.
  • All @annotations will be removed from built aix.
  • Optimizer to optimize aix size even without ProGuard.
  • It generates a smaller size of extension.
  • Ability to declare manifest attributes in AndroidManifest.xml.
  • Support for Code suggestions on VSCode, Eclipse, IntelliJ IDEA and Android Studio.
  • Filter Mit App Inventor provided classes to reduce the aix size.
  • Support for project migration to FAST from Rush, extension-template & App Inventor source based extension.
  • Support for Jetifier to make Android Support libraries compatible with AndroidX.

:handshake: Supported OS


  • Windows
  • Linux
  • MacOS
  • Android (Termux, UserLand, etc)

:question: Requirements


  1. Only Java is required to run the FAST. (JDK 8 or 11 is recommended).

:thinking: How to install?


:desktop_computer: Windows Only


  1. Run the the below command on Windows PowerShell.
iwr https://raw.githubusercontent.com/jewelshkjony/fast-cli/main/scripts/install/win.ps1 -useb | iex
  1. The installation is successful. Youโ€™re now good to use the FAST CLI.

:computer: Linux, MacOS & Android Termux


  1. Run the the below command on terminal.
curl https://raw.githubusercontent.com/jewelshkjony/fast-cli/main/scripts/install/install.sh -fsSL | sh
  1. The installation is successful. Youโ€™re now good to use the FAST CLI.

:thinking: How to update the FAST


:desktop_computer: Windows Only


  1. Make sure that FAST is already installed on your system.
  2. Run the the below command on Windows PowerShell.
iwr https://raw.githubusercontent.com/jewelshkjony/fast-cli/main/scripts/update/win.ps1 -useb | iex
  1. Done. Check the version of updated FAST.

:computer: Linux, MacOS & Android Termux


  1. Make sure that FAST is already installed on your system.
  2. Run the the below command on terminal.
curl https://raw.githubusercontent.com/jewelshkjony/fast-cli/main/scripts/update/install.sh -fsSL | sh
  1. Done. Check the version of updated FAST.

:thinking: How to create a new FAST project


  1. Open terminal at where you want to create a new FAST project.
  2. Run fast create <ProjectName>
  3. Enter the package name.
  4. Enter author name.
  5. Done.

:thinking: How to declare the component class


  1. You need to annotate with @DesignerComponent to declare extension component classes.
    Example:
@DesignerComponent(
  version = 1,
  versionName = "1.0",
  description = "Developed by JEWEL by Fast.",
  iconName = "icon.png"
)
  • Required attributes: version, iconName
  • Optional attributes: versionName, description, designerHelpDescription, helpUrl, licenseName
  • Ignored attributes: category, androidMinSdk

:thinking: How to build a FAST project


  1. Open termanl at where the FAST project is.
  2. Run fast build to build the project.
  3. Done. The compiled extension should be inside the out directory.

:thinking: How to compile with ProGuard?


  1. Make sure that the proguard attribute is enabled on the fast.yml config file. Ex. proguard: true
  2. Run the build command with -r as an additional argument. Ex. fast build -r

:bulb: Want to share an idea?


Please share your ideas here.

:bug: Getting issues?


Please open an issue here.

:handshake: For additional support


Please send me a private message or comment below.

:memo: Release Notes


Please read the release notes from here.

:moneybag: Donation


I have dedicated a significant amount of time and effort into developing the FAST. If you find my work beneficial and would like to show your appreciation, you may consider making a donation here.


Thanks a lot to all the beta testers of FAST. Without their feedback and help, it would have been impossible to make FAST a stable compiler. :tada:


5 Likes

Thank you! Since Rush hasnโ€™t been updated since 2021 and the Niotron IDE is also outdated, FAST is very welcome and overdue to make things easier for less experienced developers (like me).

2 Likes

Thank you for your feedback. It is very valuable to me. However, the FAST is able to compile the Niotron IDE extension source code.

Great :smiley:, this is very advanced and Iโ€™m glad that I was one of the beta testers of this wonderful tool.

1 Like

The FAST CLI feels like a breath of fresh air for us (extension developers). After testing it out, Iโ€™m genuinely impressed with its speed. Thank you for bringing this valuable tool to us!

2 Likes

I am truly grateful for your invaluable contributions and suggestions for Android Termux. Your assistance has been immensely beneficial to me.

1 Like

Thank you for the feedback! Iโ€™m glad to hear youโ€™re enjoying the FAST CLI. Weโ€™ve worked hard to make it efficient, so itโ€™s great to see it making a positive impact. Feel free to share any further suggestions!

1 Like

:loudspeaker: An update is pushed. Please run the update command to have the latest version v1.1.3


  • Added support for using a default icon.png.
  • By default, desugar_sources is now enabled.
  • Removed mock-related attributes from the fast.yml config.
1 Like

Good job @JEWEL :smiley:, this is very advanced and Iโ€™m glad that I was one of the beta testers of this wonderful tool

1 Like

I canโ€™t thank you enough that how much you helped me to make the FAST stable for Linux operating system. Your insightful suggestions and innovative ideas are always highly appreciated and welcomed.

1 Like

:loudspeaker: An update is available (v1.1.4)


  • Fixed Java 8 sources compiling issues even desugaring is disabled.
  • Added custom bootclasspath support for targeting Java 8 on JDK8+
  • Now itโ€™ll write additional logs to logs.txt at the installed location of FAST.
  • Changed title color and some prints color (blue to orange).

:warning: A clean installation is required, the update command might be not working.

:+1: Special thanks to @Patryk_F for helping me understand the build process :bouquet:

4 Likes

:loudspeaker: An update is available v1.2.1

:spiral_calendar: Date built: 30.10.24.23.43


  • FAST will print warnings if naming conventions are not followed.

x Cannot run program โ€œjavacโ€: CreateProcess error=2, The system cannot find the file specified
getting error

Could you please share the logs.txt file that can be found in the installation location of FAST?

Hello @JEWEL i also found some issues while compiling extension hereโ€™s log file
logs.txt (1.4 KB)

:mega: An update is available v1.2.2

Date built: 02.11.24.06.29


  • Resolved an issue impacting the R8 dexer and shrinker.
  • Included naming conventions warnings for helper-blocks, arguments of choices, parameters of functions and events.
3 Likes

can i build using kotlin?

1 Like

Yes, FAST supports Kotlin language as well.

2 Likes

Iโ€™m using Fast and I want to know if it has support for aar?

Currently, you canโ€™t directly use an aar file to develop extensions. You need to extract the classes.jar from the .aar file. Use any zip viewer application (e.x: Winrar) to unzip it.