Skip to content

Instantly share code, notes, and snippets.

@carson-katri
Last active January 24, 2018 03:39
Show Gist options
  • Save carson-katri/d4d96fcafd9c2d9b900a1bc0e63340a2 to your computer and use it in GitHub Desktop.
Save carson-katri/d4d96fcafd9c2d9b900a1bc0e63340a2 to your computer and use it in GitHub Desktop.
RebbleOS support for Pebble APIs wiki page

Thanks to @Helco's pbw_api_info we can make a list of supported/unsupported APIs in RebbleOS.

Download the SQLite database (thanks to @jwise for making the original database). Unfortunately, the list of supported APIs is incomplete, but will be improved over time.

To figure out which top Pebble APIs are already implemented, you can run:

SELECT apis.name, rebbleapis.name, COUNT(*)
FROM apirefs
JOIN apis ON apirefs.api=apis.id
LEFT OUTER JOIN rebbleapis ON apis.name = rebbleapis.name
GROUP BY apirefs.api
ORDER BY COUNT(*) desc;

You can see a more updated version (and contribute to this list) here

You should get a table that looks like this:

Anything blank (NULL) hasn't been implemented (or isn't in the table 😯)

name name COUNT(*)
window_stack_push window_stack_push 25675
window_create window_create 25674
app_event_loop app_event_loop 25544
window_get_root_layer window_get_root_layer 25511
layer_add_child layer_add_child 25418
window_destroy window_destroy 25072
tick_timer_service_subscribe tick_timer_service_subscribe 22655
gbitmap_create_with_resource 18708
gbitmap_destroy gbitmap_destroy 18231
memset memset 18120
layer_mark_dirty layer_mark_dirty 17549
tick_timer_service_unsubscribe 16423
bitmap_layer_create bitmap_layer_create 15338
strftime 15289
bitmap_layer_set_bitmap bitmap_layer_set_bitmap 15195
bitmap_layer_get_layer bitmap_layer_get_layer 15110
window_set_window_handlers window_set_window_handlers 15059
clock_is_24h_style 14948
bitmap_layer_destroy bitmap_layer_destroy 14760
time 12970
layer_set_update_proc layer_set_update_proc 12490
localtime 12391
layer_get_bounds layer_get_bounds 12232
resource_get_handle 12057
layer_destroy 11708
fonts_load_custom_font 11695
fonts_get_system_font fonts_get_system_font 11435
layer_create layer_create 11134
window_set_background_color 10702
app_message_open 10473
layer_get_frame layer_get_frame 10314
fonts_unload_custom_font 9799
time__deprecated 9587
app_message_register_inbox_received 9434
localtime__deprecated 9360
text_layer_create text_layer_create 9357
battery_state_service_peek 9321
text_layer_set_text text_layer_set_text 9315
app_timer_register app_timer_register 9278
text_layer_set_font text_layer_set_font 9114
text_layer_destroy text_layer_destroy 8961
text_layer_set_text_alignment text_layer_set_text_alignment 8928
text_layer_get_layer text_layer_get_layer 8919
text_layer_set_background_color text_layer_set_background_color 8773
bitmap_layer_set_compositing_mode 8675
text_layer_set_text_color text_layer_set_text_color 8543
window_set_background_color_2bit 8539
snprintf snprintf 8535
battery_state_service_subscribe 8325
layer_set_hidden layer_set_hidden 8208
graphics_context_set_fill_color graphics_context_set_fill_color 7959
graphics_fill_rect 7931
bitmap_layer_set_alignment 7416
app_log 7393
vibes_short_pulse 7088
dict_find 6883
text_layer_legacy2_create 6829
text_layer_legacy2_set_text 6815
app_message_outbox_send 6758
text_layer_legacy2_set_font 6718
app_message_outbox_begin 6715
bluetooth_connection_service_subscribe 6668
text_layer_legacy2_destroy 6608
text_layer_legacy2_get_layer 6561
bluetooth_connection_service_peek 6525
text_layer_legacy2_set_text_alignment 6478
battery_state_service_unsubscribe 6373
text_layer_legacy2_set_background_color_2bit 6349
app_message_register_outbox_failed 6325
text_layer_legacy2_set_text_color_2bit 6235
app_message_register_inbox_dropped 6234
vibes_long_pulse 6082
graphics_context_set_stroke_color graphics_context_set_stroke_color 6072
app_message_register_outbox_sent 5865
graphics_fill_circle 5675
bluetooth_connection_service_unsubscribe 5559
persist_exists persist_exists 5429
graphics_draw_line 5360
window_single_click_subscribe window_single_click_subscribe 5227
persist_write_int 5118
persist_read_int 5052
inverter_layer_create 4945
inverter_layer_destroy 4905
inverter_layer_get_layer 4859
light_enable_interaction 4858
strcpy strcpy 4825
vibes_double_pulse 4771
malloc 4681
graphics_draw_text 4676
free 4630
layer_set_frame layer_set_frame 4443
app_timer_cancel app_timer_cancel 4364
strlen 4314
strcat strcat 4268
accel_tap_service_subscribe 4249
sin_lookup sin_lookup 4141
cos_lookup cos_lookup 4109
gbitmap_create_as_sub_bitmap gbitmap_create_as_sub_bitmap 3964
graphics_draw_bitmap_in_rect 3897
app_message_deregister_callbacks 3865
gpath_create 3844
memmove 3782
graphics_context_set_text_color graphics_context_set_text_color 3662
accel_tap_service_unsubscribe 3584
strncpy 3547
gpath_destroy 3525
grect_center_point 3521
gpath_move_to 3414
window_set_click_config_provider 3363
gpath_draw_outline 3225
graphics_context_set_compositing_mode 3207
app_message_inbox_size_maximum 3189
window_stack_remove 3164
graphics_context_set_fill_color_2bit 3132
graphics_context_set_stroke_width graphics_context_set_stroke_width 3071
dict_read_first 3045
gpath_rotate_to 3013
layer_remove_from_parent 2998
graphics_draw_circle 2992
memcpy 2955
gbitmap_get_bounds gbitmap_get_bounds 2941
menu_layer_set_click_config_onto_window 2892
menu_layer_destroy 2883
app_message_outbox_size_maximum 2877
menu_layer_get_layer 2857
animation_schedule animation_schedule 2838
dict_read_next 2832
strcmp strcmp 2825
window_long_click_subscribe window_long_click_subscribe 2790
persist_read_data 2765
persist_write_data 2736
menu_cell_basic_draw 2735
graphics_context_set_stroke_color_2bit 2727
animation_set_duration animation_set_duration 2717
window_stack_pop 2689
window_stack_pop_all 2632
layer_get_data 2486
layer_create_with_data 2482
dict_write_end 2451
animation_set_handlers 2375
menu_layer_reload_data 2348
animation_set_curve 2302
menu_layer_create 2276
menu_layer_set_callbacks 2276
persist_read_bool 2224
persist_write_bool 2196
dict_write_uint8 2170
rand rand 2153
accel_data_service_subscribe 2145
accel_data_service_unsubscribe 2122
status_bar_layer_create 2108
scroll_layer_add_child 2101
scroll_layer_create 2101
scroll_layer_set_content_size 2099
status_bar_layer_get_layer 2085
scroll_layer_get_layer 2075
gbitmap_get_format 2068
gpath_draw_filled 2067
menu_layer_set_selected_index 2066
scroll_layer_destroy 2063
graphics_context_set_antialiased 2037
vibes_enqueue_custom_pattern 2033
graphics_draw_round_rect 2024
scroll_layer_set_click_config_onto_window 2023
status_bar_layer_destroy 1986
accel_service_set_sampling_rate 1980
light_enable 1909
dict_write_tuplet 1890
window_stack_get_top_window 1878
menu_layer_get_selected_index 1869
accel_service_peek 1868
launch_reason 1827
connection_service_subscribe 1818
action_bar_layer_add_to_window 1816
action_bar_layer_create 1814
atoi 1803
window_get_user_data 1780
window_set_user_data 1778
srand srand 1775
action_bar_layer_set_click_config_provider 1775
app_message_set_context 1767
action_bar_layer_destroy 1758
click_recognizer_get_button_id 1755
scroll_layer_set_content_offset 1749
window_set_click_config_provider_with_context 1738
gbitmap_get_palette 1737
connection_service_peek_pebble_app_connection 1730
persist_read_string 1725
persist_write_string 1724
wakeup_schedule 1702
dict_write_data 1681
window_set_click_context window_set_click_context 1655
action_bar_layer_set_icon 1653
layer_get_window 1639
grect_inset 1631
animation_unschedule 1626
wakeup_cancel_all 1623
menu_layer_set_highlight_colors 1623
window_get_click_config_provider 1613
graphics_text_layout_get_content_size 1595
scroll_layer_set_context 1592
wakeup_service_subscribe 1589
scroll_layer_get_content_offset 1579
wakeup_get_launch_event 1572
wakeup_cancel 1516
gpath_draw_filled_legacy 1515
clock_is_timezone_set 1509
scroll_layer_set_shadow_hidden 1493
menu_layer_set_normal_colors 1474
graphics_fill_radial 1466
action_bar_layer_set_background_color 1444
time_ms 1441
animation_destroy animation_destroy 1404
status_bar_layer_set_colors 1404
graphics_release_frame_buffer 1316
property_animation_create 1308
layer_set_bounds 1280
graphics_draw_rect 1278
menu_cell_layer_is_highlighted 1274
health_service_sum_today 1274
launch_get_args 1255
action_bar_layer_remove_from_window 1248
graphics_capture_frame_buffer 1247
property_animation_from 1229
property_animation_to 1229
action_bar_layer_clear_icon 1225
gbitmap_set_palette 1213
action_bar_layer_set_context 1205
gbitmap_get_data gbitmap_get_data 1175
property_animation_update_grect 1173
grect_standardize 1165
gpoint_from_polar 1157
menu_cell_basic_header_draw 1154
window_set_fullscreen 1149
gbitmap_create_from_png_data 1147
layer_get_unobstructed_bounds layer_get_unobstructed_bounds 1145
property_animation_destroy 1130
gbitmap_get_bytes_per_row gbitmap_get_bytes_per_row 1107
dict_write_cstring 1096
time_start_of_today 1060
property_animation_create_layer_frame 1014
app_sync_init 943
setlocale 941
animation_set_delay 933
scroll_layer_set_frame 932
graphics_draw_arc 927
bitmap_layer_set_background_color 926
health_service_metric_accessible 921
health_service_events_subscribe 865
connection_service_unsubscribe 863
animation_legacy2_schedule 855
dictation_session_create 833
dictation_session_start 832
app_timer_reschedule app_timer_reschedule 827
app_sync_deinit 816
graphics_context_set_text_color_2bit 809
animation_legacy2_set_duration 799
status_bar_layer_set_separator_mode 793
dict_write_int 779
graphics_text_attributes_create 776
scroll_layer_set_paging 740
animation_legacy2_set_handlers 731
text_layer_enable_screen_text_flow_and_paging 729
action_bar_layer_get_layer 728
graphics_text_attributes_destroy 722
graphics_text_layout_get_content_size_with_attributes 714
text_layer_set_overflow_mode text_layer_set_overflow_mode 696
calloc 690
animation_legacy2_set_curve 689
window_single_repeating_click_subscribe window_single_repeating_click_subscribe 687
layer_set_clips 682
dict_calc_buffer_size 676
dictation_session_enable_confirmation 670
graphics_draw_pixel 667
menu_layer_legacy2_create 658
scroll_layer_get_content_size 644
gbitmap_create_blank 644
window_stack_contains_window 632
gsize_equal 619
dictation_session_stop 612
menu_layer_legacy2_set_callbacks 608
action_bar_layer_legacy2_create 600
action_bar_layer_legacy2_add_to_window 599
action_bar_layer_legacy2_set_icon 595
persist_delete 590
animation_set_implementation animation_set_implementation 586
action_bar_layer_legacy2_set_click_config_provider 584
unobstructed_area_service_subscribe 580
action_bar_layer_legacy2_destroy 566
text_layer_get_content_size text_layer_get_content_size 556
animation_create animation_create 553
health_service_events_unsubscribe 547
animation_legacy2_unschedule 523
gcolor_equal 504
property_animation_get_animation 480
quiet_time_is_active 480
gmtime 473
strncmp 469
mktime 455
action_bar_layer_legacy2_set_background_color_2bit 442
action_bar_layer_legacy2_remove_from_window 426
property_animation_legacy2_create_layer_frame 412
gbitmap_get_data_row_info 410
action_bar_layer_legacy2_clear_icon 407
property_animation_legacy2_create 397
action_bar_layer_legacy2_set_context 396
grect_equal grect_equal 395
app_comm_set_sniff_interval 391
property_animation_legacy2_update_grect 390
dict_write_int8 386
atan2_lookup 383
i18n_get_system_locale 376
app_focus_service_subscribe_handlers 376
dict_write_begin 370
app_focus_service_unsubscribe 367
resource_load 366
resource_size 357
simple_menu_layer_create 348
dict_write_int32 346
health_service_sum_averaged 346
unobstructed_area_service_unsubscribe 344
clock_copy_time_string 341
strncat 335
property_animation_legacy2_destroy 330
simple_menu_layer_destroy 329
simple_menu_layer_get_layer 324
health_service_peek_current_value 324
dict_size 311
gbitmap_create_blank_2bit 293
vibes_cancel 290
layer_get_hidden 286
animation_legacy2_destroy 283
heap_bytes_free 281
animation_is_scheduled 275
text_layer_set_size text_layer_set_size 272
dict_read_begin_from_buffer 268
menu_layer_is_index_selected 268
window_multi_click_subscribe window_multi_click_subscribe 263
dict_calc_buffer_size_from_tuplets 259
animation_unschedule_all 259
dict_merge 257
bitmap_layer_set_background_color_2bit 244
dict_write_uint32 243
scroll_layer_set_callbacks 234
time_ms_deprecated 231
text_layer_legacy2_set_overflow_mode 229
graphics_text_attributes_enable_screen_text_flow 229
gbitmap_set_data 224
psleep 223
app_focus_service_subscribe 219
menu_layer_get_scroll_layer 214
window_raw_click_subscribe window_raw_click_subscribe 209
health_service_sum 208
app_glance_add_slice 206
app_glance_reload 206
health_service_metric_averaged_accessible 203
layer_convert_point_to_screen 201
health_service_get_measurement_system_for_display 201
gcolor_legible_over 197
animation_legacy2_set_delay 196
compass_service_subscribe 196
graphics_text_attributes_enable_paging 181
dictation_session_destroy 177
layer_convert_rect_to_screen 176
compass_service_unsubscribe 172
resource_load_byte_range 169
realloc 163
watch_info_get_model 157
text_layer_legacy2_get_content_size 156
rot_bitmap_layer_create 154
layer_remove_child_layers 153
action_bar_layer_set_icon_animated 152
health_service_peek_current_activities 152
text_layer_get_text text_layer_get_text 149
rot_bitmap_layer_set_angle 148
app_sync_set 147
compass_service_set_heading_filter 143
layer_insert_below_sibling 141
window_is_loaded 135
grect_centered_from_polar 134
rocky_event_loop_with_resource 133
click_number_of_clicks_counted 129
rot_bitmap_layer_destroy 126
rot_bitmap_set_compositing_mode 123
gpath_draw_outline_open 122
action_menu_level_add_action 119
action_menu_level_create 119
action_menu_open 119
animation_legacy2_is_scheduled 118
app_worker_launch 118
gbitmap_sequence_create_with_resource 117
gbitmap_sequence_update_bitmap_next_frame 117
menu_layer_set_center_focused 116
animation_spawn_create 115
dict_write_uint16 113
persist_get_size 112
gbitmap_sequence_destroy 112
gbitmap_sequence_get_bitmap_size 112
gdraw_command_image_create_with_resource 111
gdraw_command_image_destroy 109
gdraw_command_image_draw 107
wakeup_query 106
animation_sequence_create 105
grect_crop 101
gcolor_equal__deprecated 101
animation_get_context 100
text_layer_legacy2_set_size 99
difftime 96
heap_bytes_used 95
app_worker_is_running 91
menu_layer_set_selected_next 84
menu_layer_pad_bottom_enable 84
action_menu_item_get_action_data 83
grect_align 82
app_worker_message_subscribe 81
simple_menu_layer_get_menu_layer 78
action_menu_hierarchy_destroy 78
gbitmap_sequence_restart 73
layer_insert_above_sibling 72
gdraw_command_frame_draw 70
click_recognizer_is_repeating 67
animation_set_play_count 67
gdraw_command_sequence_get_frame_by_index 66
gdraw_command_sequence_get_num_frames 66
simple_menu_layer_set_selected_index 65
gdraw_command_sequence_destroy 65
animation_legacy2_unschedule_all 64
menu_cell_title_draw 64
scroll_layer_scroll_down_click_handler 64
scroll_layer_scroll_up_click_handler 64
rot_bitmap_set_src_ic 63
watch_info_get_color 63
animation_legacy2_create 62
health_service_get_minute_history 62
animation_legacy2_set_implementation 61
action_bar_layer_set_icon_press_animation 60
graphics_draw_rotated_bitmap 59
content_indicator_configure_direction 58
action_menu_level_add_child 57
text_layer_legacy2_get_text 56
exit_reason_set 56
number_window_create 55
app_worker_message_unsubscribe 55
property_animation_create_bounds_origin 55
number_window_set_min 54
bitmap_layer_get_bitmap 54
clock_to_timestamp 54
health_service_set_heart_rate_sample_period 54
accel_service_set_samples_per_update 53
gpoint_equal 53
menu_layer_legacy2_set_callbacks__deprecated 53
app_worker_kill 53
scroll_layer_get_content_indicator 52
number_window_get_value 51
gdraw_command_image_get_bounds_size 51
number_window_set_max 50
app_message_get_context 50
number_window_destroy 49
app_worker_send_message 49
gdraw_command_sequence_create_with_resource 49
atol 48
gbitmap_create_with_data gbitmap_create_with_data 47
number_window_set_value 46
graphics_capture_frame_buffer_2bit 43
connection_service_peek_pebblekit_connection 42
dictation_session_enable_error_dialogs 40
dict_write_int16 39
animation_spawn_create_from_array 39
gdraw_command_image_get_command_list 39
gdraw_command_list_iterate 39
data_logging_create 37
data_logging_finish 37
number_window_set_step_size 34
grect_contains_point 32
number_window_get_window 32
health_service_metric_aggregate_averaged_accessible 32
gdraw_command_sequence_get_bounds_size 31
gbitmap_sequence_set_play_count 30
gdraw_command_set_fill_color 30
animation_set_custom_curve 29
gdraw_command_set_stroke_color 29
animation_clone 28
animation_set_reverse 28
compass_service_peek 27
graphics_capture_frame_buffer_format 27
property_animation_subject 27
property_animation_update_int16 27
gbitmap_set_bounds 26
property_animation_update_uint32 25
watch_info_get_firmware_version 24
gbitmap_create_blank_with_palette 24
preferred_content_size 24
app_sync_get 23
clock_get_timezone 23
window_set_status_bar_icon 22
health_service_activities_iterate 22
data_logging_log 20
animation_get_implementation 20
smartstrap_attribute_destroy 20
action_bar_layer_legacy2_get_layer 18
gdraw_command_get_num_points 18
gdraw_command_get_point 18
gdraw_command_set_point 18
content_indicator_destroy 17
smartstrap_attribute_begin_write 16
smartstrap_attribute_create 16
smartstrap_attribute_end_write 16
smartstrap_attribute_read 16
smartstrap_service_is_available 16
smartstrap_subscribe 16
number_window_set_label 15
content_indicator_create 15
content_indicator_set_content_available 15
gdraw_command_list_draw 14
smartstrap_unsubscribe 13
health_service_any_activity_accessible 13
gdraw_command_get_type 12
gdraw_command_image_clone 12
gdraw_command_set_stroke_width 12
animation_sequence_create_from_array 11
action_menu_get_root_level 11
app_comm_get_sniff_interval 8
grect_clip 8
menu_index_compare 8
property_animation_legacy2_update_int16 8
simple_menu_layer_get_selected_index 8
action_menu_close 8
preferred_result_display_duration 8
memory_cache_flush 8
animation_legacy2_get_context 7
grect_is_empty 7
accel_raw_data_service_subscribe 7
animation_get_reverse 7
graphics_frame_buffer_is_captured 6
gdraw_command_sequence_get_frame_by_elapsed 6
gdraw_command_sequence_get_total_duration 6
content_indicator_get_content_available 6
text_layer_restore_default_text_flow_and_paging 6
rot_bitmap_layer_increment_angle 5
property_animation_update_gpoint 5
gbitmap_sequence_get_total_num_frames 5
animation_get_elapsed 5
action_menu_level_set_display_mode 5
health_service_aggregate_averaged 5
rot_bitmap_layer_set_corner_clip_color 4
gbitmap_sequence_get_current_frame_idx 4
animation_get_duration 4
gdraw_command_frame_get_duration 4
gdraw_command_get_stroke_width 4
action_menu_item_get_label 4
accel_data_service_subscribe__deprecated 3
window_get_fullscreen 3
action_menu_set_result_window 3
smartstrap_attribute_get_attribute_id 3
smartstrap_set_timeout 3
layer_get_clips 2
dict_serialize_tuplets_to_buffer 2
action_menu_get_context 2
smartstrap_attribute_get_service_id 2
graphics_text_layout_get_max_used_size 1
rot_bitmap_layer_set_corner_clip_color_2bit 1
animation_get_play_count 1
animation_set_elapsed 1
gbitmap_create_palettized_from_1bit 1
gdraw_command_image_set_bounds_size 1
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment