F' - A flight software and embedded systems framework

F´: A Flight-Proven, Multi-Platform, Open-Source Flight Software Framework

Language grade: C++ Language grade: Python Language grade: JavaScript

F´ (F Prime) is a component-driven framework that enables rapid development and deployment of spaceflight and other embedded software applications. Originally developed at the Jet Propulsion Laboratory, F´ has been successfully deployed on several space applications. It is tailored but not limited to small-scale spaceflight systems such as CubeSats, SmallSats, and instruments.

F´ comprises several elements:

  • An architecture that decomposes flight software into discrete components with well-defined interfaces
  • A C++ framework that provides core capabilities such as message queues and threads
  • Modeling tools for specifying components and connections and automatically generating code
  • A growing collection of ready-to-use components
  • Testing tools for testing flight software at the unit and integration levels.

Quick Installation Guide

The following utilities are prerequisites to installing F´:

  • cmake
  • git
  • Python 3.5+ with pip

Once these utilities are installed, you can install F´ Python dependencies. Installing dependencies in a Python virtual environment prevents issues at the system level, but installing in a virtual environment is not required.

To install F´ quickly, enter:

git clone https://github.com/nasa/fprime.git
cd fprime
pip install --upgrade wheel setuptools pip
pip install Fw/Python Gds/

For full installation instructions, including virtual environment creation and installation verification, see INSTALL.md.

Example Deployments

F´ comes with two example deployments. The deployments represent working F´ applications to help you understand F´. You can use these examples for reference, or clone them to start a new project.

The next section links to more step-by-step tutorials, but it's a good idea to build and run at least the first example deployment to ensure that F´ is installed correctly.

Example one: Ref

The standard reference application demonstrates how most of the system components should be wired together. The reference application can build on Linux or Mac OSX, allowing you to get started immediately without the need for embedded hardware.

Example two: RPI

This Raspberry PI application shows how to run F´ in an embedded context by running on the Raspberry PI (a $35 embedded Linux computer). This application shows you how to get started on embedded projects with cross-compiling, drivers, and more. The Raspberry Pi was chosen because it is commercially available for a low price and runs Linux.

Tutorials

F´ provides several tutorials in order to help understand and develop within the framework. These tutorials cover basic component creation, system and topology design, tooling, and more. These tutorials are available at docs/Tutorials/README.md.

Getting Help with F´

As F´ becomes a community centered product line, there are more items available from the community at large.

You can join the mailing list at https://groups.google.com/d/forum/fprime-community.

The F´ community GitHub Organization contains third party contributions, more documentation of flight software development, and more! https://github.com/fprime-community.

You can open issues with this repository at: https://github.com/nasa/fprime/issues

F´ Features

F´ has the following key features that enable robust embedded system design.

Reusability

F´'s component-based architecture enables a high degree of modularity and software reuse.

Rapid Deployment

F´ provides a complete development ecosystem, including modeling tools, testing tools, and a ground data system. Developers use the modeling tools to write high-level specifications, automatically generate implementations in C++, and fill in the implementations with domain-specific code. The framework and the code generators provide all the boilerplate code required in an F´ deployment, including code for thread management, code for communication between components, and code for handling commands, telemetry, and parameters. The testing tools and the ground data system simplify software testing, both on workstations and on flight hardware in the lab.

Portability

F´ runs on a wide range of processors, from microcontrollers to multicore computers, and on several operating systems. Porting F´ to new operating systems is straightforward.

High Performance

F´ utilizes a point-to-point architecture. The architecture minimizes the use of computational resources and is well suited for smaller processors.

Adaptability

F´ is tailored to the level of complexity required for small missions. This makes F´ accessible and easy to use while still supporting a wide variety of missions.

Analyzability

The typed port connections provide strong compile-time guarantees of correctness.

F´ Release Notes

Release 1.0:

  • This is the initial release of the software to open source. See the license file for terms of use.

Release 1.01

  • Updated contributor list. No code changes.

Release 1.1

  • Created a Raspberry Pi demo. Read about it here
  • Added a tutorial here
  • Updated Svc/BufferManager with bug fix
  • Fixed a bunch of shell permissions

Release 1.2

  • Better MagicDraw Plugin
  • Prototype CMake build system. See: CMake Documentation
  • Mars Helicopter Project fixes migrated in
  • Python 3 support added
  • Gse refactored and renamed to Gds
  • Wx frontend to Gds
  • UdpSender and UdpReceiver components added
  • Purged inaccurate ITAR and Copyright notices
  • Misc. bug fixes

Release 1.3

  • New prototype HTML GUI
  • Python packages Fw/Python and Gds
  • Refined CMake and fprime-util helper script
  • Better ground interface component
  • Integration test API
  • Baremetal components

Release 1.4

  • Ref app no longer hangs on Linux exit
  • GDS improvements:
    • File Uplink and Downlink implemented
    • GDS supports multiple active windows
    • Usability improvements for EVRs and commands
  • CMake improvements:
    • Baremetal compilation supported
    • Random rebuilding fixed
    • Missing Cheetah templates properly rebuild
    • Separate projects supported without additional tweaks
  • Updated MemAllocator to have:
    • "recoverable" flag to indicate if memory was recoverable across boots
    • size variable is now modifiable by allocator to indicate actual size
    • This will break existing code that uses MemAllocator
  • Updated CmdSequencer
    • Uses new MemAllocator interface

Release 1.5

  • Documentation improvements
  • F´ Project restructuring
  • Refactored fprim-util
    • Replaced redundant targets with flags e.g. build-ut is now build --ut
    • Added info command
    • Bug and usability fixes
  • GDS Improvements
    • Prototype GDS CLI tool
    • Project custom dashboard support
  • Array, Enum type support and examples
  • Code linting and bug fixes
Owner
NASA
Read about NASA's Open Data initiative here: https://www.nasa.gov/open/ & Members Find Instructions here: http://nasa.github.io/
NASA
Comments
  • Porting to Platforms with Constrained Memory

    Porting to Platforms with Constrained Memory

    I am trying to port F Prime to one of the largest available parts in the ATmega family of embedded processors from Microchip (previously Atmel). With some modifications, @zeroping and I have managed to get it to compile all the expected frameworks parts, port objects, and components for the ArduinoBlink deployment in @LeStarch's fork.

    The problem is that when we get to the linking step, it fails to link because it cannot find references to new and delete. These keywords are explicitly left out of the avr-g++ compiler support, because using them on many of the smaller supported processors is actually a mistake. e.g.: an ATtiny85 with 512 bytes of ram, or worse, an ATtiny10 with only 32 bytes of RAM! Not that we care about running F Prime on those targets, but the authors of the compiler do care, and made appropriate decisions about the built-in support.

    Similarly, there is an avr-libc that is provided but STL, libc++, and libstdc++ are not. These issues are approachable by providing stubs or extern "C" statements for the Fw/Types/AVR directory. In fact, that is how I have gotten it to compile, needing cstring, cstdio, and cstdarg shims in the Types folder.

    The following is a snippet of my [cmake build system] compilation output where the linker fails:

    [100%] Linking CXX executable ../../../bin/avr-gcc/ArduinoBlink
    cd /home/vagrant/src/ATmega-fprime/build-atmega/examples/ArduinoBlink/Top && /usr/bin/cmake -E cmake_link_script CMakeFiles/ArduinoBlink.dir/link.txt --verbose=1
    /usr/bin/avr-g++  -g   CMakeFiles/ArduinoBlink.dir/Main.cpp.obj CMakeFiles/ArduinoBlink.dir/Topology.cpp.obj CMakeFiles/ArduinoBlink.dir/write.c.obj CMakeFiles/ArduinoBlink.dir/ArduinoTopologyAppAc.cpp.obj  -o ../../../bin/avr-gcc/ArduinoBlink ../../../lib/avr-gcc/libFw_Types.a ../../../lib/avr-gcc/libFw_Cfg.a ../../../lib/avr-gcc/libSvc_ActiveRateGroup.a ../../../lib/avr-gcc/libSvc_Health.a ../../../lib/avr-gcc/libSvc_Time.a ../../../lib/avr-gcc/libSvc_FatalHandler.a ../../../lib/avr-gcc/libSvc_GroundInterface.a ../../../lib/avr-gcc/libSvc_TlmChan.a ../../../lib/avr-gcc/libSvc_BufferManager.a ../../../lib/avr-gcc/libSvc_FileDownlink.a ../../../lib/avr-gcc/libSvc_ActiveLogger.a ../../../lib/avr-gcc/libSvc_AssertFatalAdapter.a ../../../lib/avr-gcc/libexamples_ArduinoGpsTracker_SerialDriver.a ../../../lib/avr-gcc/libSvc_CmdDispatcher.a ../../../lib/avr-gcc/libexamples_ArduinoGpsTracker_LedBlinker.a ../../../lib/avr-gcc/libSvc_FileUplink.a ../../../lib/avr-gcc/libexamples_ArduinoGpsTracker_HardwareRateDriver.a ../../../lib/avr-gcc/libSvc_PrmDb.a ../../../lib/avr-gcc/libSvc_RateGroupDriver.a ../../../lib/avr-gcc/libSvc_CmdSequencer.a ../../../lib/avr-gcc/libFw_Logger.a ../../../lib/avr-gcc/libSvc_GroundInterface.a ../../../lib/avr-gcc/libSvc_LinuxTime.a ../../../lib/avr-gcc/libOs.a ../../../lib/avr-gcc/libOs_Baremetal_TaskRunner.a ../../../lib/avr-gcc/libSvc_WatchDog.a ../../../lib/avr-gcc/libUtils_Types.a ../../../lib/avr-gcc/libSvc_Fatal.a ../../../lib/avr-gcc/libFw_FilePacket.a ../../../lib/avr-gcc/libFw_Buffer.a ../../../lib/avr-gcc/libCFDP_Checksum.a ../../../lib/avr-gcc/libFw_Prm.a ../../../lib/avr-gcc/libSvc_Cycle.a ../../../lib/avr-gcc/libFw_Tlm.a ../../../lib/avr-gcc/libFw_Log.a ../../../lib/avr-gcc/libSvc_Sched.a ../../../lib/avr-gcc/libSvc_Ping.a ../../../lib/avr-gcc/libFw_Cmd.a ../../../lib/avr-gcc/libFw_Com.a ../../../lib/avr-gcc/libSvc_Seq.a ../../../lib/avr-gcc/libSvc_Time.a ../../../lib/avr-gcc/libFw_Comp.a ../../../lib/avr-gcc/libOs.a ../../../lib/avr-gcc/libFw_Time.a ../../../lib/avr-gcc/libFw_Port.a ../../../lib/avr-gcc/libFw_Obj.a ../../../lib/avr-gcc/libFw_Logger.a ../../../lib/avr-gcc/libUtils_Hash.a ../../../lib/avr-gcc/libFw_Types.a ../../../lib/avr-gcc/libFw_Cfg.a 
    /usr/lib/gcc/avr/5.4.0/../../../avr/bin/ld: ../../../bin/avr-gcc/ArduinoBlink section `.text' will not fit in region `text'
    /usr/lib/gcc/avr/5.4.0/../../../avr/bin/ld: region `text' overflowed by 271484 bytes
    ../../../lib/avr-gcc/libFw_Types.a(Assert.cpp.obj): In function `Fw::defaultPrintAssert(signed char const*)':
    /home/vagrant/src/ATmega-fprime/Fw/Types/Assert.cpp:23: undefined reference to `operator delete'
    /home/vagrant/src/ATmega-fprime/Fw/Types/Assert.cpp:23: undefined reference to `operator delete'
    ../../../lib/avr-gcc/libSvc_ActiveLogger.a(ActiveLoggerImpl.cpp.obj): In function `Svc::ActiveLoggerImpl::~ActiveLoggerImpl()':
    /home/vagrant/src/ATmega-fprime/Svc/ActiveLogger/ActiveLoggerImpl.cpp:59: undefined reference to `operator delete'
    ../../../lib/avr-gcc/libSvc_ActiveLogger.a(ActiveLoggerImpl.cpp.obj): In function `Svc::ActiveLoggerImpl::~ActiveLoggerImpl()':
    /home/vagrant/src/ATmega-fprime/Svc/ActiveLogger/ActiveLoggerImpl.cpp:59: undefined reference to `operator delete'
    ../../../lib/avr-gcc/libSvc_CmdDispatcher.a(CommandDispatcherComponentAc.cpp.obj): In function `Svc::CommandDispatcherComponentBase::~CommandDispatcherComponentBase()':
    /home/vagrant/src/ATmega-fprime/build-atmega/F-Prime/Svc/CmdDispatcher/CommandDispatcherComponentAc.cpp:730: undefined reference to `operator delete'
    

    The Arduino solution for cross-platform code between AVR and ARM architectures is to implement new and delete in the Arduino library. It basically just thinly wraps the avr-libc implementations of malloc() and free():

    void *operator new( size_t size ){
      return malloc( size );
    }
    
    void *operator new[]( size_t size ){
      return malloc( size );
    }
    
    void operator delete( void *ptr ){
      if( ptr )
        free( ptr );
    }
    
    void operator delete[]( void *ptr ){
      if( ptr )
        free( ptr );
    }
    

    So, clearly it is possible to find a place to plug this into the framework. However, @timcanham has also suggested that perhaps there are patterns we can leverage that avoid using malloc.

    What is a good approach here? Hopefully we can use the results of this issue to enhance Issue #76.

  • Errors Issue

    Errors Issue

    I am working on the testing section of my CLEMOps component, and I get this error when I try to run make ut. I haven't started working on the tests themselves, but I think I have everything setup, including the blank testing functions. https://github.com/brhs17/fprime/tree/MOpAgg makeUTCLEMOps

  • make impl Command Not Recognized

    make impl Command Not Recognized

    My name is Benjamin and I am a new member on Cornell Cislunar Explorers. I have been working thorough the math component tutorial, and at step 2.4.1 I cannot get the make impl command to create any stubs.

    I run the command in the Ref/MathSender directory, and get the result:

    make: *** No rule to make target 'impl'. Stop.

    I built the component without any problems, and have failed to find anything like misnamed files.

  • RPI Demo ./runBoth.sh

    RPI Demo ./runBoth.sh

    I am having an issue running the runBoth.sh file after compiling the RPI demo.

    I have made the RPI demo successfully, and am now trying to run the script runBoth.sh in the RPI directory. However, this is giving me the following error:

    ./scripts/run_pi.sh: 31: ./scripts/run_pi.sh: Syntax error: end of file unexpected (expected "fi")

    And then the program just hangs and does not terminate. I looked at the run_pi.sh file and could not find the problem. Any ideas what I should do to fix the script or if I may have installed something incorrectly setting up?

  • lestarch: installing dependencies where necessary, checking for other…

    lestarch: installing dependencies where necessary, checking for other…

    … dependencies

    | | | |:---|:---| |Originating Project/Creator| | |Affected Component| | |Affected Architectures(s)| | |Related Issue(s)| | |Has Unit Tests (y/n)| | |Builds Without Errors (y/n)| | |Unit Tests Pass (y/n)| | |Documentation Included (y/n)| |


    Change Description

    Installs:

    1. SBT, when needing to build fpp

    Checks for (existing installation:

    1. fprime-util (for autocoder dependencies)
    2. python3
    3. java
  • lestarch: integrate FPP and CMake

    lestarch: integrate FPP and CMake

    | | | |:---|:---| |Originating Project/Creator| | |Affected Component| | |Affected Architectures(s)| | |Related Issue(s)| | |Has Unit Tests (y/n)| | |Builds Without Errors (y/n)| | |Unit Tests Pass (y/n)| | |Documentation Included (y/n)| |


    Change Description

    Initial CMake + FPP refactor. CMake cleanup. Autocoder subsystem drafted.

    Rationale

    FPP for the win.

    Testing/Review Recommendations

    Only the build works, other functions will come soon!

    Future Work

    impl testimpl dict ... ...

  • lestarch: reworked linux serial driver into linux uart driver following byte stream driver model

    lestarch: reworked linux serial driver into linux uart driver following byte stream driver model

    | | | |:---|:---| |Originating Project/Creator| | |Affected Component| | |Affected Architectures(s)| | |Related Issue(s)| | |Has Unit Tests (y/n)| | |Builds Without Errors (y/n)| | |Unit Tests Pass (y/n)| | |Documentation Included (y/n)| |


    Change Description

    This takes Drv::LinuxSerialDriver and reworks it into LinuxUartDriver. This includes the following:

    1. Renaming for clarity as this specifically deals with UART ports
    2. Switched to using buffer manager allocate and deallocate calls for acquiring memory
    3. Switched to using Drv::ByteStreamDriverModel for send and recv

    Rationale

    First and foremost the driver was essentially implementing the Drv::ByteStreamModel anyway. Refactoring it to match makes it a drop-in replacement in uplink/downlink without changing much other than order of arguments and names.

    Second, managing its own buffer pool was an old pattern that we've moved away from in favor of the buffer manager. This now uses that pattern.

    Third, UART is a clearer more descriptive name than Serial

    Future Work

    Unit tests. They are disabled in CMake, but perhaps should be brought back.

  • Import/tlm packetizer

    Import/tlm packetizer

    | | | |:---|:---| |Originating Project/Creator| @timcanham | |Affected Component| Svc/TlmPacketizer | |Affected Architectures(s)| All | |Related Issue(s)| | |Has Unit Tests (y/n)| y | |Builds Without Errors (y/n)| y | |Unit Tests Pass (y/n)| y | |Documentation Included (y/n)| y |


    Change Description

    This PR contains the Svc/TlmPacketizer component and updates to the autocoder scripts to support generating packet C++ code. It is not the final delivery; there are some dependency issues to sort out, and the packetizer script isn't fully complete. This is meant to deliver the component and scripts to avoid diverging too much.

    Rationale

    This is a useful alternative to Svc/TlmChan if fixed packets make more sense.

    Testing/Review Recommendations

    The Ref application is tested to show it runs normally. You can exercise the SET_LEVEL command with a 0 argument and see the LevelSet evr and SendLevel channel.

    Future Work

    The dependency issues discovered during development need to be fixed, and the full end-to-end testing would need to be completed.

  • fixed handling of redefined messages field types in Gds and GroundInterface

    fixed handling of redefined messages field types in Gds and GroundInterface

    | | | |:---|:---| |Originating Project/Creator|GT1/Georgia Tech | |Affected Component| Svc/GroundInterface | |Affected Architectures(s)| None | |Related Issue(s)| None | |Has Unit Tests (y/n)| N | |Builds Without Errors (y/n)| Y | |Unit Tests Pass (y/n)| Y | |Documentation Included (y/n)| Y |


    Change Description

    Edited the GroundInterface component to use the compilation flags defining the Packet Descriptor. Edited the Gds to use the configuration manager's types when encoding and decoding commands, events, telemetry, parameters, and packet headers.

    Rationale

    Fixes bug where configuring message fields in deployments causes the Gds to be unable to communicate with the deployment. The compilation flags for configuring message fields are necessary on certain platforms with limited memory to reduce memory usage.

    Testing/Review Recommendations

    A deployment should be made that edits the (compilation flag, config manager field) pairs described in the included Gds/docs/README.md file are changed. This deployment should be able to have successful exchanges of commands, events, parameters, and telemetry. There should also be builds containing individual changes to each flag to ensure that all fields are set correctly.

    Future Work

    The FwEnumStoreType flag is confirmed to break the communications with the Gds when it is changed from an I32. I do not know how to change the way this type is serialized since it is defined in the fprime/common/models/serialize/enum_type.py file which I don't believe has access to the configuration manager from the Gds.

    There may be additional fields that can be configured with compilation flags, but will still cause issues with encoding and decoding that will need to be handled correctly to avoid broken communications.

  • MagicDraw18 SP6 on Windows velocity runtime failure

    MagicDraw18 SP6 on Windows velocity runtime failure

    Hello,

    We are running the fprime magicDraw plugin on MagicDraw18 SP6 Windows. We installed the JPL plugin and got the Component Autocoder to appear on toolbar. However when pressing Auto Generate Component/Port/Topology XML we get the following error:

    screen shot 2019-02-02 at 1 12 37 pm

    All of the XML files in AutoXML are generated but empty. Have you seen this issue before? What do you suggest we do next?

    Any help is greatly appreciated. Thank you!

  • Build error:

    Build error: "Input object has no document: lxml.etree._XSLTResultTree"

    | | | |:---|:---| |F´ Version| master | |Affected Component| |

    Problem Description

    I'm following the installation instructions, but when I try the build step (fprime-util build --jobs 10), I get the following error.

    [ 53%] Generating AssertFatalAdapterComponentAc.hpp, AssertFatalAdapterComponentAc.cpp
    Input object has no document: lxml.etree._XSLTResultTree
    Traceback (most recent call last):
      File "/Users/cmauceri/My Drive/Workspace/FPrime/fprime/Autocoders/Python/bin/codegen.py", line 1334, in <module>
        main()
      File "/Users/cmauceri/My Drive/Workspace/FPrime/fprime/Autocoders/Python/bin/codegen.py", line 1259, in main
        the_parsed_component_xml = XmlComponentParser.XmlComponentParser(
      File "/Users/cmauceri/My Drive/Workspace/FPrime/fprime/Autocoders/Python/src/fprime_ac/parsers/XmlComponentParser.py", line 113, in __init__
        self.validate_xml(xml_file, element_tree, "schematron", "active_comp")
      File "/Users/cmauceri/My Drive/Workspace/FPrime/fprime/Autocoders/Python/src/fprime_ac/parsers/XmlComponentParser.py", line 1218, in validate_xml
        validator_compiled = isoschematron.Schematron(validator_parsed)
      File "/Users/cmauceri/My Drive/Workspace/FPrime/fprime-venv/lib/python3.9/site-packages/lxml/isoschematron/__init__.py", line 275, in __init__
        schematron = self._expand(schematron, **expand_params)
      File "src/lxml/xslt.pxi", line 515, in lxml.etree.XSLT.__call__
      File "src/lxml/apihelpers.pxi", line 43, in lxml.etree._documentOrRaise
    ValueError: Input object has no document: lxml.etree._XSLTResultTree
    make[3]: *** [F-Prime/Svc/AssertFatalAdapter/AssertFatalAdapterComponentAc.hpp] Error 255
    make[2]: *** [F-Prime/Svc/AssertFatalAdapter/CMakeFiles/Svc_AssertFatalAdapter.dir/all] Error 2
    make[1]: *** [CMakeFiles/Ref.dir/rule] Error 2
    make: *** [Ref] Error 2
    [ERROR] CMake erred with return code 2
    

    Details

    I'm on a Mac with an M1 chip running Monteray.

    I used fprime-util build --jobs 10 instead of fprime-util build --jobs "$(nproc || printf '%s\n' 1)" because nproc is not available on mac.

    How to Reproduce

    1. Follow Installation Instructions
    2. Error occurs when I run fprime-util build --jobs "$(nproc || printf '%s\n' 1)"

    Expected Behavior

    I expect the build to execute successfully.

Embedded, self-hosted swagger-ui for go servers

swaggerui Embedded, self-hosted Swagger Ui for go servers This module provides swaggerui.Handler, which you can use to serve an embedded copy of Swagg

Dec 31, 2022
Embedded javascript server-side renderer for Golang

v8ssr Embedded javascript server-side renderer for Golang. Useful for static server-side rendering. This does not attempt to polyfill node or browser

Aug 27, 2022
godesim Simulate complex systems with a simple API.

godesim Simulate complex systems with a simple API. Wrangle non-linear differential equations while writing maintainable, simple code. Why Godesim?

Jan 5, 2023
Moby Project - a collaborative project for the container ecosystem to assemble container-based systems
Moby Project - a collaborative project for the container ecosystem to assemble container-based systems

The Moby Project Moby is an open-source project created by Docker to enable and accelerate software containerization. It provides a "Lego set" of tool

Jan 2, 2023
IBus Engine for GoVarnam. An easy way to type Indian languages on GNU/Linux systems.

IBus Engine For GoVarnam An easy way to type Indian languages on GNU/Linux systems. goibus - golang implementation of libibus Thanks to sarim and haun

Feb 10, 2022
Distributed Systems 2021 -- Miniproject 3

Mini_Project3 == A Distributed Auction System == You must implement a distributed auction system using replication: a distributed component which hand

Dec 1, 2021
A simple tool to send binary data over a serial port. Designed for use with my retro computer systems.

Colin's Transfer Tool This is a really basic tool to transfer firmware files to my retro computer systems over a serial port. This removes the need fo

Dec 21, 2021
Ghdl - A much more convenient way to download GitHub release binaries on the command line, works on Win & Unix-like systems

ghdl Memorize ghdl as github download ghdl is a fast and simple program (and als

Oct 12, 2022
MIT 6.824: Distributed Systems (Spring 2020)

MIT6.824 MIT 6.824: Distributed Systems (Spring 2020) Lab 1 Lab 2 Lab 2A Lab 2B Lab 2C Lab 2D Lab 3 Lab 3A Lab 3B Lab 4 Lab 4A Lab 4B Lab 4 Challenge

Dec 26, 2022
Software of development with Golang
Software of development with Golang

Go-Simple-Rest-Api Description This repository is a Software of Development with Go,Mux,etc Installation Using Go 1.16.3 Server preferably. DataBase U

Dec 13, 2021
Core Brightgate Software Stack

Brightgate Product Software Directories Directory Description base/ Resource and Protocol Buffer message definitions build/ Scripts to do with buildin

Sep 25, 2021
software keyboard for TinyGo
software keyboard for TinyGo

tinykb tinykb is a software keyboard for TinyGo. To use tinykb, it is necessary to implement the driver.Displayer interface. It is still an alpha vers

Jan 14, 2022
The Bhojpur BSS is a software-as-a-service product used as an Business Support System based on Bhojpur.NET Platform for application delivery.

Bhojpur BSS - Business Support System The Bhojpur BSS is a software-as-a-service product used as an Business Support System based on Bhojpur.NET Platf

Sep 26, 2022
Antch, a fast, powerful and extensible web crawling & scraping framework for Go

Antch Antch, inspired by Scrapy. If you're familiar with scrapy, you can quickly get started. Antch is a fast, powerful and extensible web crawling &

Jan 6, 2023
Entitas-Go is a fast Entity Component System Framework (ECS) Go 1.17 port of Entitas v1.13.0 for C# and Unity.

Entitas-Go Entitas-GO is a fast Entity Component System Framework (ECS) Go 1.17 port of Entitas v1.13.0 for C# and Unity. Code Generator Install the l

Dec 26, 2022
Tanzu Framework provides a set of building blocks to build atop of the Tanzu platform and leverages Carvel packaging

Tanzu Framework provides a set of building blocks to build atop of the Tanzu platform and leverages Carvel packaging and plugins to provide users with a much stronger, more integrated experience than the loose coupling and stand-alone commands of the previous generation of tools.

Dec 16, 2022
Highly customizable archive and index framework for EPITA
Highly customizable archive and index framework for EPITA

epitar.gz Highly customizable archive and index framework for EPITA. Get started

Nov 28, 2022
GoC2 - MacOS Post Exploitation C2 Framework
GoC2 - MacOS Post Exploitation C2 Framework

goc2 c2 client/server/paylod GoC2 - MacOS Post Exploitation C2 Framework Custom C2 for bypassing EDR and ease of use.

Dec 23, 2022
The High Code Framework (low-code for devs)

hof - the high code framework The hof tool tries to remove redundent development activities by using high level designs, code generation, and diff3 wh

Dec 24, 2022