Application System Modules is a public, open-source collection of modular, cross-platform libraries for developing native applications. Each library offers a lightweight and portable API for working with operating system services, kernel functions, and hardware features. Instead of offering a large, unified framework, ASM is designed as a set of targeted libraries that can be used alone or together to create full native applications.
ASM is written in Odin, and uses a modular architecture where each subsystem is built as a separate library with a clear purpose. Developers should be able to depend solely on the libraries they need, whether an application only needs window management, audio playback, networking, or a full platform abstraction layer, without adding additional dependencies or runtime overhead.
The goal of the project is to establish a long-term foundation for native software development. Its scope extends beyond window management and input handling to the larger ecosystem of operating system services such as graphics integration, audio, threading, synchronization primitives, file systems, networking, dialogs, notifications, accessibility, security, sensors, and other platform facilities. Each library is designed for performance, maintainability and API consistency. ASM can be used for anything from small utilities to large desktop software and game engines.
Interoperability is a fundamental design principle. Although ASM is fully implemented in Odin, every public library is intended to expose a stable C ABI, allowing it to be used from any programming language. Official language bindings can then provide idiomatic APIs for their respective ecosystems while relying on the same underlying implementation.
- Application System Modules: https://wiki.octovel.org/application-system-modules
- Contribution Guidelines: https://developer.octovel.org/guidelines
- Developer Standards: https://developer.octovel.org/standards
ASM is a community-driven project, and contributions of all sizes are welcome. Whether you are fixing a bug, contributing to the documentation, adding support for a new platform, optimizing existing code, working on language bindings, or suggesting completely new modules, you are making the ecosystem better for everyone.
Contributors are encouraged to open a discussion before starting work on larger features or changes to the architecture. Early design discussions are useful to make sure that new APIs are consistent with the rest of the project, do not duplicate existing modules unnecessarily and are in line with the long-term goals of ASM. ASM is aimed at providing stable libraries that applications can rely on for years. Therefore, careful API design and maintainability are as important as implementation.
