Porting Casbin-CPP to Real-Time Operating Systems (RTOS)
@hsluoyz ya está trabajando en esto.
Desde el 5/5/2023.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
Is your feature request related to a problem? Please describe.
Many RTOS platforms (e.g., FreeRTOS, AliOS Things, TencentOS-tiny, LiteOS) are implemented in C language. To integrate Casbin into RTOS environments for execution and invocation by other modules, we need to first compile Casbin-CPP (C version) within the RTOS. The porting process will need to address several challenges:
- Compiler compatibility: As RTOS usually runs on embedded devices, a specific compiler and toolchain might be required to compile and link the code. We need to ensure that the Casbin-CPP library is compatible with the compiler and toolchain used by the target RTOS.
- Resource constraints: Embedded devices and RTOS often operate under resource-constrained environments, such as limited memory and storage space. Casbin-CPP may require optimizations to reduce resource usage, e.g., adjusting memory allocation strategies, reducing global variable usage, and optimizing data structures.
- System library dependencies: Casbin-CPP may rely on some system libraries, such as the C++ standard library and POSIX API. In an RTOS environment, these libraries may not be fully available or provide limited functionality. Alternative solutions or custom implementations for missing features may be necessary.
- Thread safety: Casbin-CPP might not have been designed with thread safety in mind for RTOS environments. Modifications to the library may be necessary to ensure its safety in a multi-threaded environment, such as adding locks and using atomic operations.
- Filesystem and persistence: Casbin typically loads policies from files and supports persisting policies to files. However, traditional file systems might not be available in RTOS environments. This may require modifications to the policy loading and persistence parts of Casbin-CPP to adapt to the RTOS environment, e.g., storing policy data in memory or using non-filesystem-based persistence methods.
Describe the solution you'd like
We would like to explore and implement the necessary modifications and optimizations to make Casbin-CPP compatible with RTOS environments. This may include addressing the challenges listed above, such as compiler compatibility, resource constraints, system library dependencies, thread safety, and filesystem adaptations.
Describe alternatives you've considered
An alternative solution would be to implement a new library specifically designed for RTOS environments. However, porting the existing Casbin-CPP library would allow for better code reusability and maintainability.
Additional context
This feature request is in response to the growing demand for integrating Casbin into IoT devices and other embedded systems running RTOS. By porting Casbin-CPP to RTOS, we can expand the library's applicability and make it a more versatile solution for access control and authorization in various contexts.
- Lenguaje dominante
- C++
- Estrellas
- 257
- Forks
- 67
- Merge medio
- 10 h 23 min
- PR fusionados (30 d)
- 1
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de apache/casbin-cpp
-
ci: automated PR performance benchmark comparisonQuizá libre de nuevo @knyk-dev la tomó hace 298 días y no hay ningún pull request abierto. Abiertoenhancement
apache/casbin-cpp#266 · 1 asignado ·
-
Use the same performance benchmark tests for all languagesQuizá libre de nuevo @hsluoyz la tomó hace 1575 días y no hay ningún pull request abierto. Abiertoenhancement
apache/casbin-cpp#207 · 3 comentarios · 1 asignado ·
-
Benchmarking pycasbin's performance to compare it with Python's casbin implementationQuizá libre de nuevo @hsluoyz la tomó hace 1747 días y no hay ningún pull request abierto. Abiertoenhancement
apache/casbin-cpp#181 · 1 comentario · 1 asignado ·
-
Make an authorization middleware for Envoy based on CasbinQuizá libre de nuevo @hsluoyz la tomó hace 1951 días y no hay ningún pull request abierto. Abiertoenhancement
apache/casbin-cpp#115 · 1 comentario · 1 asignado ·
-
Integrate with GlewlwydQuizá libre de nuevo @hsluoyz la tomó hace 1991 días y no hay ningún pull request abierto. Abiertoenhancement
apache/casbin-cpp#100 · 19 comentarios · 1 reacción · 1 asignado ·
Todos los issues de apache/casbin-cpp
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
bug needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
microsoft/microsoft-ui-xaml#12515 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
FujiNetWIFI/fujinet-firmware#2261 ·
Los mantenedores suelen responder en 1 día
-
bug difficulty: easy good first issue help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
nagisa-kamishiro/rosehip#73 ·
Los mantenedores suelen responder en 1 día
-
bazel bug odb
Dificultad 1/5 Menos de una hora Aptitud para principiantes 80/100
The-OpenROAD-Project/OpenROAD#12095 · 1 comentario ·
Los mantenedores suelen responder en 1 día