You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 1ffee33
Browse filesBrowse the repository at this point in the historyBrowse files
Describe the repository as nativeapi, the home of every binding
The repository is now libnativeapi/nativeapi (formerly nativeapi-flutter
and nativeapi-workspace). Rewrite the README around the bindings it
holds, point every link, package homepage and the shared Contributing
section at the new name, and bump core for the same README change.
Copy file name to clipboardExpand all lines: AGENTS.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# libnativeapi workspace
2
2
3
-
This is the workspace repo (`nativeapi-workspace`, formerly `nativeapi-flutter`) for the [libnativeapi](https://github.com/libnativeapi) project family. Every binding (`bindings/dart/`, `bindings/rust/`, `bindings/csharp/`, `bindings/js/`, `bindings/python/`), the code generator (`tools/codegen/`), the `./codegen` script, the specs and the shared tooling live directly in this repo (the Rust and C# histories were merged in from `nativeapi-rust` and `nativeapi-csharp`); only `core/` is a git submodule of an independent repository. Work inside `core/` is committed and pushed from that subdirectory; everything else is committed here.
3
+
This is the workspace repo (`libnativeapi/nativeapi`, formerly `nativeapi-flutter` and `nativeapi-workspace`) for the [libnativeapi](https://github.com/libnativeapi) project family. Every binding (`bindings/dart/`, `bindings/rust/`, `bindings/csharp/`, `bindings/js/`, `bindings/python/`), the code generator (`tools/codegen/`), the `./codegen` script, the specs and the shared tooling live directly in this repo (the Rust and C# histories were merged in from `nativeapi-rust` and `nativeapi-csharp`); only `core/` is a git submodule of an independent repository. Work inside `core/` is committed and pushed from that subdirectory; everything else is committed here.
The development home of the [libnativeapi](https://github.com/libnativeapi) project: the Dart, Rust and C# bindings, the code generator, the design specs and the shared tooling live directly in this repository, and the C++ core is a git submodule. A core change and its regenerated bindings (core → codegen → bindings) are made and tracked together here.
3
+
Unified access to native system APIs — windows, tray icons, menus, displays, keyboard, dialogs, storage and more — from Dart/Flutter, Rust, C#, JavaScript/TypeScript and Python, all built on one C++ core.
4
4
5
-
This repository was `nativeapi-flutter` until 2026-09; its history, issues and stars carry over. The histories of the former `workspace`, `nativeapi-rust` and `nativeapi-csharp` repositories are merged in.
5
+
| Android | iOS | Linux | macOS | Windows |
6
+
|:-------:|:---:|:-----:|:-----:|:-------:|
7
+
| ✅ | ✅ | ✅ | ✅ | ✅ |
8
+
9
+
🚧 **Work in Progress**: the API is under active development.
10
+
11
+
This repository is the home of every binding: the Dart, Rust, C#, JS and Python bindings, the code generator, the design specs and the shared tooling live here directly, and the C++ core ([nativeapi-core](https://github.com/libnativeapi/nativeapi-core)) is checked out as a git submodule. A core change and its regenerated bindings (core → codegen → bindings) are made and tracked together.
12
+
13
+
## Bindings
14
+
15
+
| Binding | Packages | Status |
16
+
| --- | --- | --- |
17
+
|[Dart / Flutter](bindings/dart)|[`nativeapi`](https://pub.dev/packages/nativeapi), [`cnativeapi`](https://pub.dev/packages/cnativeapi) on pub.dev; `nativeapi_flutter` (not yet published) | published |
18
+
|[Rust](bindings/rust)|[`nativeapi`](https://crates.io/crates/nativeapi), [`cnativeapi`](https://crates.io/crates/cnativeapi) on crates.io | published |
19
+
|[C#](bindings/csharp)|`NativeAPI`| not yet on NuGet; build from source |
20
+
|[JavaScript / TypeScript](bindings/js)|`nativeapi` (Node-API addon for Node.js, Deno and Bun) | not yet on npm |
21
+
|[Python](bindings/python)|`nativeapi` (`ctypes`, Python 3.10+) | prototype, not yet on PyPI |
22
+
23
+
Each binding's README covers installation and usage.
24
+
25
+
## History
26
+
27
+
This repository was `nativeapi-flutter`, then `nativeapi-workspace`, and is now `nativeapi`; the old names redirect here, and its history, issues and stars carry over. The histories of the former `workspace`, `nativeapi-rust` and `nativeapi-csharp` repositories are merged in, so the Rust and C# bindings keep their full history under `bindings/`. The old `nativeapi-rust` and `nativeapi-csharp` repositories are archived.
6
28
7
29
## Layout
8
30
9
31
| Path | Description |
10
32
| --- | --- |
11
-
|[core](https://github.com/libnativeapi/nativeapi-core)| submodule: C++ core library (`nativeapi-core`) |
33
+
|[core](https://github.com/libnativeapi/nativeapi-core)| submodule: the C++ core library (`nativeapi-core`) |
@@ -28,7 +52,7 @@ Already cloned without `--recursive`?
28
52
git submodule update --init --recursive
29
53
```
30
54
31
-
The root `pubspec.yaml` is the pub workspace (and melos) root for the Dart packages and the Flutter examples, and the root `Cargo.toml` is the cargo workspace for the Rust crates and examples, so `flutter pub get` and `cargo build` run from the repository root.
55
+
The root `pubspec.yaml` is the pub workspace (and melos) root for the Dart packages and the Flutter examples, and the root `Cargo.toml` is the cargo workspace for the Rust crates and examples, so `flutter pub get` and `cargo build` run from the repository root. The C# solution is `bindings/csharp/NativeAPI.slnx`.
32
56
33
57
## Code generation
34
58
@@ -37,7 +61,7 @@ The root `pubspec.yaml` is the pub workspace (and melos) root for the Dart packa
37
61
```bash
38
62
./codegen # full run: C ABI, then all bindings
39
63
./codegen check # verify generated files are up to date (CI mode)
40
-
./codegen readme # copy the shared README sections (tools/readme/) into every repo
64
+
./codegen readme # copy the shared README sections (tools/readme/) into every README
41
65
./codegen sync # after a core change: regenerate everything, rerun
42
66
# bindgen/ffigen, and commit core, then this repo
43
67
# (add --push to also push, -m "..." for the core message)
@@ -48,13 +72,22 @@ See [tools/codegen/README.md](tools/codegen/README.md) for details.
48
72
## Common tasks
49
73
50
74
```bash
51
-
make status # working-tree status of this repo and every submodule
75
+
make status # working-tree status of this repo and the core submodule
52
76
make sync # fast-forward core to origin/main
53
77
make bump # stage the updated core pointer for commit
54
78
```
55
79
56
80
Work on the bindings, the tooling and the specs is committed here directly. Work inside `core` is committed and pushed from that subdirectory as if it were a standalone clone; this repository then records the updated pointer once the combination is known to be compatible.
57
81
82
+
## Issues
83
+
84
+
- API requests and native behavior bugs → [nativeapi-core issues](https://github.com/libnativeapi/nativeapi-core/issues)
85
+
- Bugs specific to one binding → [nativeapi issues](https://github.com/libnativeapi/nativeapi/issues)
86
+
58
87
## Releases
59
88
60
-
Each binding is released from a tag of its own: `v<version>` publishes the Dart packages to pub.dev (`dart-release.yml`), `rust-v<version>` publishes the crates to crates.io (`rust-release.yml`). The C# binding is not published yet.
89
+
Each binding is released from a tag of its own: `v<version>` publishes the Dart packages to pub.dev (`dart-release.yml`), `rust-v<version>` publishes the crates to crates.io (`rust-release.yml`). The C#, JS and Python bindings are not published yet.
Copy file name to clipboardExpand all lines: bindings/csharp/README.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
# nativeapi-csharp
1
+
# nativeapi for C#
2
2
3
3
C# bindings for [nativeapi](https://github.com/libnativeapi/nativeapi-core) — unified access to native system APIs: windows, tray icons, menus, displays, keyboard, dialogs, storage and more.
4
4
@@ -13,8 +13,8 @@ C# bindings for [nativeapi](https://github.com/libnativeapi/nativeapi-core) —
13
13
Clone the repository with its `core` submodule, build the native library (CMake 3.24+; on Linux also `libgtk-3-dev libx11-dev libxi-dev`), and reference `src/NativeAPI/NativeAPI.csproj` from your project:
@@ -49,16 +49,16 @@ dotnet run --project ../../examples/csharp_preferences_example
49
49
50
50
## Contributing
51
51
52
-
Development happens in [nativeapi-workspace](https://github.com/libnativeapi/nativeapi-workspace), which holds every binding and the code generator and checks out the core library as a submodule:
52
+
Development happens in [nativeapi](https://github.com/libnativeapi/nativeapi), which holds every binding and the code generator and checks out the core library as a submodule:
Files marked `AUTO-GENERATED. DO NOT EDIT.` are generated from the C++ headers in [nativeapi](https://github.com/libnativeapi/nativeapi-core). To change the API, send a pull request there; maintainers regenerate the bindings.
59
59
60
60
- API requests and native behavior bugs → [nativeapi-core issues](https://github.com/libnativeapi/nativeapi-core/issues)
61
-
- Bugs specific to one binding → [nativeapi-workspace issues](https://github.com/libnativeapi/nativeapi-workspace/issues)
61
+
- Bugs specific to one binding → [nativeapi issues](https://github.com/libnativeapi/nativeapi/issues)
62
62
- Not sure → [nativeapi-core issues](https://github.com/libnativeapi/nativeapi-core/issues)
Copy file name to clipboardExpand all lines: bindings/dart/README.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -104,16 +104,16 @@ flutter run
104
104
105
105
## Contributing
106
106
107
-
Development happens in [nativeapi-workspace](https://github.com/libnativeapi/nativeapi-workspace), which holds every binding and the code generator and checks out the core library as a submodule:
107
+
Development happens in [nativeapi](https://github.com/libnativeapi/nativeapi), which holds every binding and the code generator and checks out the core library as a submodule:
Files marked `AUTO-GENERATED. DO NOT EDIT.` are generated from the C++ headers in [nativeapi](https://github.com/libnativeapi/nativeapi-core). To change the API, send a pull request there; maintainers regenerate the bindings.
114
114
115
115
- API requests and native behavior bugs → [nativeapi-core issues](https://github.com/libnativeapi/nativeapi-core/issues)
116
-
- Bugs specific to one binding → [nativeapi-workspace issues](https://github.com/libnativeapi/nativeapi-workspace/issues)
116
+
- Bugs specific to one binding → [nativeapi issues](https://github.com/libnativeapi/nativeapi/issues)
117
117
- Not sure → [nativeapi-core issues](https://github.com/libnativeapi/nativeapi-core/issues)
Development happens in [nativeapi-workspace](https://github.com/libnativeapi/nativeapi-workspace), which holds every binding and the code generator and checks out the core library as a submodule:
74
+
Development happens in [nativeapi](https://github.com/libnativeapi/nativeapi), which holds every binding and the code generator and checks out the core library as a submodule:
Files marked `AUTO-GENERATED. DO NOT EDIT.` are generated from the C++ headers in [nativeapi](https://github.com/libnativeapi/nativeapi-core). To change the API, send a pull request there; maintainers regenerate the bindings.
81
81
82
82
- API requests and native behavior bugs → [nativeapi-core issues](https://github.com/libnativeapi/nativeapi-core/issues)
83
-
- Bugs specific to one binding → [nativeapi-workspace issues](https://github.com/libnativeapi/nativeapi-workspace/issues)
83
+
- Bugs specific to one binding → [nativeapi issues](https://github.com/libnativeapi/nativeapi/issues)
84
84
- Not sure → [nativeapi-core issues](https://github.com/libnativeapi/nativeapi-core/issues)
Development happens in [nativeapi-workspace](https://github.com/libnativeapi/nativeapi-workspace), which holds every binding and the code generator and checks out the core library as a submodule:
88
+
Development happens in [nativeapi](https://github.com/libnativeapi/nativeapi), which holds every binding and the code generator and checks out the core library as a submodule:
Files marked `AUTO-GENERATED. DO NOT EDIT.` are generated from the C++ headers in [nativeapi](https://github.com/libnativeapi/nativeapi-core). To change the API, send a pull request there; maintainers regenerate the bindings.
95
95
96
96
- API requests and native behavior bugs → [nativeapi-core issues](https://github.com/libnativeapi/nativeapi-core/issues)
97
-
- Bugs specific to one binding → [nativeapi-workspace issues](https://github.com/libnativeapi/nativeapi-workspace/issues)
97
+
- Bugs specific to one binding → [nativeapi issues](https://github.com/libnativeapi/nativeapi/issues)
98
98
- Not sure → [nativeapi-core issues](https://github.com/libnativeapi/nativeapi-core/issues)
Copy file name to clipboardExpand all lines: bindings/rust/README.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
# nativeapi-rust
1
+
# nativeapi for Rust
2
2
3
3
Rust bindings for [nativeapi](https://github.com/libnativeapi/nativeapi-core) — unified access to native system APIs: windows, tray icons, menus, displays, keyboard, dialogs, storage and more.
4
4
@@ -49,16 +49,16 @@ cargo run -p tray_icon_example
49
49
50
50
## Contributing
51
51
52
-
Development happens in [nativeapi-workspace](https://github.com/libnativeapi/nativeapi-workspace), which holds every binding and the code generator and checks out the core library as a submodule:
52
+
Development happens in [nativeapi](https://github.com/libnativeapi/nativeapi), which holds every binding and the code generator and checks out the core library as a submodule:
Files marked `AUTO-GENERATED. DO NOT EDIT.` are generated from the C++ headers in [nativeapi](https://github.com/libnativeapi/nativeapi-core). To change the API, send a pull request there; maintainers regenerate the bindings.
59
59
60
60
- API requests and native behavior bugs → [nativeapi-core issues](https://github.com/libnativeapi/nativeapi-core/issues)
61
-
- Bugs specific to one binding → [nativeapi-workspace issues](https://github.com/libnativeapi/nativeapi-workspace/issues)
61
+
- Bugs specific to one binding → [nativeapi issues](https://github.com/libnativeapi/nativeapi/issues)
62
62
- Not sure → [nativeapi-core issues](https://github.com/libnativeapi/nativeapi-core/issues)
0 commit comments